Non riesco a trovare una libreria che consenta di formattare le istruzioni di output del registro in un modo molto più gradevole di quello che si vede normalmente. Una delle funzionalità che ricordo è che potrebbe "compensare" il messaggio di log in base alla "nidificazione" di dove si trovava l'istruzione del log.Java: libreria con output di registro formattati in modo corretto
Cioè, invece di questo:
DEBUG | DefaultBeanDefinitionDocumentReader.java| 86 | Loading bean definitions
DEBUG | AbstractAutowireCapableBeanFactory.java| 411 | Finished creating instance of bean 'MS-SQL'
DEBUG | DefaultSingletonBeanRegistry.java| 213 | Creating shared instance of singleton bean 'MySQL'
DEBUG | AutowireCapableBeanFactory.java| 383 | Creating instance of bean 'MySQL'
DEBUG | AutowireCapableBeanFactory.java| 459 | Eagerly caching bean 'MySQL' to allow for resolving potential circular references
DEBUG | AutowireCapableBeanFactory.java| 789 | Another debug message
Sarebbe mostra qualcosa di simile:
DEBUG | DefaultBeanDefinitionDocumentReader.java| 86 | Loading bean definitions
DEBUG | AbstractAutowireCapableBeanFactory.java | 411 | Finished creating instance of bean 'MS-SQL'
DEBUG | DefaultSingletonBeanRegistry.java | 213 | Creating shared instance of singleton bean 'MySQL'
DEBUG | AutowireCapableBeanFactory.java | 383 | Creating instance of bean 'MySQL'
DEBUG | AutowireCapableBeanFactory.java | 459 | |__ Eagerly caching bean 'MySQL' to allow for resolving potential circular references
DEBUG | AutowireCapableBeanFactory.java | 789 | |__ Another debug message
Questo è un esempio che ho appena fatto up (VeryLongCamelCaseClassNamesNotMine). Ma ricordo di aver visto un output del registro così pulito e che erano davvero molto più belli di qualsiasi cosa avessi visto prima e, oltre ad essere semplicemente più belli, erano anche più facili da leggere perché riproducevano parte dell'organizzazione logica del codice.
Eppure non riesco a trovare più cosa fosse quella libreria.
Sono abbastanza sicuro che fosse pienamente compatibile con log4j o sl4j.
Hai guardato PatternLayout di log4j? Sembra che copre la formattazione desiderata http://logging.apache.org/log4j/1.2/apidocs/org/apache/log4j/PatternLayout.html – marklai
@marklai: +1 al tuo commento, è interessante in quanto a quanto pare può funzionare, ma sono davvero dopo una libreria/API che esiste (per Java) ma che semplicemente non riesco a trovare più e fa il "logging in base al livello dell'indent" thinggamagic. Sto provando snap.com in modalità visiva per trovare la pagina web del progetto ma semplicemente non riesco a trovarlo :( – SyntaxT3rr0r
Non sono sicuro di quale sia la libreria, ma probabilmente dovresti fare attenzione a un risultato di prestazioni. Se, probabilmente sta usando lo stack per essere in grado di calcolare quanto profondo deve rientrare. Il problema è che per ottenere lo stack, deve generare un'eccezione, prenderlo e ottenere la traccia dello stack da lì. Questo è probabilmente il modo in cui log4j emette il nome del metodo richiamato e avvisa anche in caso di problemi di prestazioni gravi (http://logging.apache.org/log4j/1.2/apidocs/org/apache/log4j/PatternLayout.html). –