log4j - Bestes Konzept

reibi

Top Contributor
Hallo

Also ich hab n Programm mit vielen Klassen. Einige davon gehören zu Kern und einige sind dazügehörige Dependencies, welche ich mittels Dependency-Injection reinhole. Zudem ist noch gut zu wissen, das ich das log4j-Verhalten mit dem properties-File einstellen will.

Nun würd ich da gerne den besten Ansatz zum loggen finden.

Also ich könnte zB
1.) Also erstes erstmal den root-Logger initialisieren und den(die Instanz davon) in jede Methode mit reinschleusen

2.) Ich mach für jede KLasse nen eigenen Logger
Ist das gut?


Wie macht ihr das?
Muss ich dann jeden Logger einzeln konfigurieren? oder kann ich auch den root-logger als Sammelbecken benutzen?

Gruss
 
2. natürlich, wird auch überall so gezeigt & verwendet 😉

Muss ich dann jeden Logger einzeln konfigurieren? oder kann ich auch den root-logger als Sammelbecken benutzen?
Klar geht das.

Ansonsten: Log4J ist etwas alt mitlerweile, sieh dir doch mal LogBack an, zumindest fürs nächste Projekt: Logback Home
 
Hi Maki

Also das mit backlog kuck ich mir an ... aber auch wie Du meinst "zum nächsten Projekt" ;-)

zu log4j-logger noch was:

Also nehmen wir mal an wir haben 2 Klassen: "com.comx.Main" und "com.comx.Tools"

Wie würdest DU denn beide logger nennen? WIe die vollständigen KlassenMitPackage oder nur wie die Klasse oder gruppen wie "main-logger" und "tools-logger"

Gruss
 
Wie würdest DU denn beide logger nennen? WIe die vollständigen KlassenMitPackage oder nur wie die Klasse oder gruppen wie "main-logger" und "tools-logger"
So wie immer und überall praktiziert:
Java:
private static final Logger = Logger.getLogger(LoggendeKlasse.class);
Alles andere wäre richtig.. schlecht, diplomatisch ausgedrückt.
 
So wie immer und überall praktiziert:
Java:
private static final Logger = Logger.getLogger(LoggendeKlasse.class);

eher so, oder?
Java:
private static final Logger log = Logger.getLogger(LoggendeKlasse.class);

oder auch ne Möglichkeit:
Java:
private final Logger log = Logger.getLogger(this.getClass());
 
Nein, so ;-)

Java:
private static final Logger LOG = LoggerFactory.getLogger(LoggendeKlasse.class);
 
mvitz,

das sollte man doch nur bei "Konstanten" machen, log/logger ist nicht "konstant" sondern mutable.

Bei Strings wäre das anders... 😉
 
Hm, da hab ich so noch nicht drüber nachgedacht, aber du hast recht. Danke!

Ansonsten sollte der Hauptunterschied der sein, dass ich SLF4J vorgeschlagen habe (LoggerFactory ;-) )
 

Neue Themen


Zurück
Oben