cari

Rumah  >  Soal Jawab  >  teks badan

Bagaimana untuk menggunakan log4j dalam java tanpa mengisytiharkannya setiap kali ia dipanggil?

Setiap kali anda menulis kelas baharu, anda mesti mengisytiharkannya seperti berikut:

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

Bukankah ini sangat menyusahkan? Adakah terdapat apa-apa cara untuk menetapkan Logger kepada kelas yang boleh dipanggil secara statik, terus memanggil maklumat, ralat dan kaedah lain, dan pada masa yang sama mencetak kelas semasa, nombor benang dan maklumat lain?

为情所困为情所困2752 hari yang lalu636

membalas semua(3)saya akan balas

  • 漂亮男人

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

    Anda hanya boleh merangkumnya untuk mencapai apa yang anda inginkan, seperti membina kelas untuk merangkum Logger dan mendedahkan beberapa antara muka statik. Mengenai mengapa banyak kod ditulis sebagai private static Logger logger = Logger.getLogger(Test.class);, ia sebenarnya bertujuan untuk meningkatkan fleksibiliti dan ketepatan log.

    balas
    0
  • 给我你的怀抱

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

    Tengok ini /a/11...

    balas
    0
  • 漂亮男人

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

    Isytihar log kerana ia boleh mentakrifkan nama logger yang berbeza dan anda boleh menyesuaikan kaedah output anda sendiri melalui nama logger, seperti level< /code> code>, appender...dlllog是因为他可以定义不同的logger name可以通过logger name定制自己的输出方式, 比如level, appender...等

    如果你的日志是以相同的方式处理那你完全可以声明公共的静态 log 对象, 需要的地方使用该log
    Jika log anda diproses dengan cara yang sama, anda boleh mengisytiharkan objek log statik awam
    Gunakan log jika perlu dan tidak akan ada pengisytiharan pendua .

    Untuk contoh:

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

    Sudah tentu anda juga boleh menggunakan lombok untuk memudahkan kod anda.🎜

    balas
    0
  • Batalbalas