suchen

Heim  >  Fragen und Antworten  >  Hauptteil

Wie verwende ich log4j in Java, ohne es bei jedem Aufruf zu deklarieren?

Jedes Mal, wenn Sie eine neue Klasse schreiben, müssen Sie diese wie folgt deklarieren:

private static Logger logger = Logger.getLogger(Test.class);  

Ist das nicht sehr problematisch? Gibt es eine Möglichkeit, den Logger auf eine statisch aufrufbare Klasse festzulegen, die Info-, Fehler- und andere Methoden direkt aufzurufen und gleichzeitig die aktuelle Klasse, Thread-Nummer und andere Informationen auszugeben?

为情所困为情所困2752 Tage vor637

Antworte allen(3)Ich werde antworten

  • 漂亮男人

    漂亮男人2017-05-17 10:06:39

    你大可以简单封装一下实现你要的目的,比如建个类把Logger封装进去,暴露几个静态接口出来。至于为什么很多代码书写的时候写成private static Logger logger = Logger.getLogger(Test.class);,其实主要是为了提高日志的灵活性、准确性等。

    Antwort
    0
  • 给我你的怀抱

    给我你的怀抱2017-05-17 10:06:39

    看看这个 /a/11...

    Antwort
    0
  • 漂亮男人

    漂亮男人2017-05-17 10:06:39

    声明log是因为他可以定义不同的logger name可以通过logger name定制自己的输出方式, 比如level, appender...等

    如果你的日志是以相同的方式处理那你完全可以声明公共的静态 log 对象, 需要的地方使用该log也不存在重复声明的情况了.
    如:

    import static xxx.GlobalLogs.log;
    
    log.debug("...");
    log.info("...");
    //...

    当然你还可以使用 lombok 的方式来简化你的代码.

    Antwort
    0
  • StornierenAntwort