【问题标题】:getting error when using with using multiple loggers使用多个记录器时出错
【发布时间】:2019-01-18 19:31:27
【问题描述】:

我正在使用多个记录器来附加到多个日志文件中。这些日志文件的路径是动态设置的。

我正在用 java 做我的项目并使用 log4j 框架。 我的项目结构。

  src 
 log4test
 log4test.java
 log4test2
 log4test2.java
 log4j.properties



 log4test.java:-
 public class Log4Test{


 public static void main(String[] args)throws IOException,SQLException{
   System.setProperty("logs", "C:\\New folder 3\\logs.log");
   Logger log = Logger.getLogger("file");
   log.info("hello");
  Log4Test2.fefe();
  }

  }
 log4test2.java:-
  public class Log4Test2{
       /* Get actual class name to be printed on */
       public static void fefe()throws IOException,SQLException{
     System.setProperty("logs.file", "C:\\New folder 2\\logs.log");
          Logger log = Logger.getLogger("admin");
          log.info("Debug2");
          log.info("Info2");
       } 
     }
   log4j.properties:-
   log4j.rootLogger=INFO
   log4j.logger.file=INFO, file
   log4j.logger.admin=INFO, admin

   # Define the file appender
   log4j.appender.file=org.apache.log4j.FileAppender
   log4j.appender.file.File=$[logs}

   # Define the layout for file appender
   log4j.appender.file.layout=org.apache.log4j.PatternLayout
   log4j.appender.file.layout.conversionPattern=%d{yyyy-MM-dd HH:mm:ss} 
   [%p] %m%n

   # Define the file appender
   log4j.appender.admin=org.apache.log4j.FileAppender
   log4j.appender.admin.File=${logs.file}

     # Define the layout for file appender
    log4j.appender.admin.layout=org.apache.log4j.PatternLayout
    log4j.appender.admin.layout.conversionPattern=%d{yyyy-MM-dd HH:mm:ss} 
    [%p] %m%n

我收到此错误:- log4j:ERROR setFile(null,true) 调用失败

【问题讨论】:

    标签: java log4j


    【解决方案1】:

    你能检查一下这条线

     # Define the file appender
       log4j.appender.file=org.apache.log4j.FileAppender
       log4j.appender.file.File=$[logs}  //TODO should be ${logs}
    

    如果我没记错的话。谢谢你。

    第二个想法是:

    公共类 Log4Test2{

    private final Logger logger = LoggerFactory.getLogger("admin");
    
    public void fefe()throws IOException,SQLException{ //try remove static 
        System.setProperty("logs.file", "C:\\New folder 2\\logs.log");
        log.info("Debug2");
        log.info("Info2");
    }
    

    【讨论】:

    • 但是我收到了记录器管理员的错误。错误是相同的 log4j:ERROR setFile(null,true) call failed
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-03-31
    • 1970-01-01
    • 2012-07-02
    • 2018-12-17
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多