2017-09-17 108 views
1

我想以編程方式配置Logback TimeBasedRollingPolicy,但它不會在路由文件夾中創建我的日誌文件。 這裏是我的代碼調用記錄創造者類:以編程方式TimeBasedRollingPolicy logback

CreateLogger LoggerClass=new CreateLogger(); 
     private final Logger logger = loggerClass.createLoggerFor("foo", "D:\\logback/testLogback.log"); 
logger.debug("11111"); 

d:\的logback/testLogback.log的主要日誌文件。 這裏是LoggerCreator類:

public class CreateLogger { 
    public Logger createLoggerFor(String string, String file) { 
     LoggerContext lc = (LoggerContext) LoggerFactory.getILoggerFactory(); 
     PatternLayoutEncoder ple = new PatternLayoutEncoder(); 
    ple.setPattern("%date %level [%thread] %logger{10} [%file:%line] %msg%n"); 
    ple.setContext(lc); 
    ple.start(); 
    FileAppender<ILoggingEvent> fileAppender = new FileAppender<ILoggingEvent>(); 
    fileAppender.setFile(file); 
    fileAppender.setEncoder(ple); 
    fileAppender.setContext(lc); 
    fileAppender.start(); 

    RollingFileAppender logFileAppender = new RollingFileAppender(); 
    logFileAppender.setContext(lc); 
    logFileAppender.setName("debug"); 
    logFileAppender.setEncoder(ple); 
    logFileAppender.setAppend(true); 
    logFileAppender.setFile(file); 
    TimeBasedRollingPolicy logFilePolicy = new TimeBasedRollingPolicy(); 
    logFilePolicy.setContext(lc); 
    logFilePolicy.setParent(logFileAppender); 
    logFilePolicy.setFileNamePattern("D:\\logback/archived/testLogBack.%d{yyyy-MM-dd}.%i.log"); 
    logFilePolicy.setMaxHistory(7); 
    logFilePolicy.start(); 

    logFileAppender.setRollingPolicy(logFilePolicy); 
    logFileAppender.start(); 
    Logger logger = (Logger) LoggerFactory.getLogger(string); 
    logger.addAppender(fileAppender); 
    logger.setLevel(Level.DEBUG); 
    logger.setAdditive(false); 


    logger.addAppender(logFileAppender); 

    return logger; 
} 

}

歸檔文件應在使用中提到圖形名稱此路徑: d:\的logback /存檔/ testLogBack%d {YYYY-MM-DD}。 %i.log」

我的問題是創建的日誌被添加到主日誌文件和日期不分離的基礎

我還可以看到在控制檯這些行:

14:44:16,864 |-ERROR in [email protected]:83 - no applicable action for [rollingPolicy], current ElementPath is [[configuration][appender][rollingPolicy]] 
14:44:16,864 |-ERROR in [email protected]:30 - no applicable action for [fileNamePattern], current ElementPath is [[configuration][appender][rollingPolicy][fileNamePattern]] 

我的應用程序服務器的WebLogic 12c的

+0

沒有答案?? !! :(( – AFF

回答

1

我解決它通過自己如下:

PatternLayoutEncoder logEncoder = new PatternLayoutEncoder(); 
      logEncoder.setContext(logCtx); 
      logEncoder.setPattern("%-12date{YYYY-MM-dd HH:mm:ss.SSS} %-5level - %msg%n"); 
      logEncoder.start(); 

      ConsoleAppender logConsoleAppender = new ConsoleAppender(); 
      logConsoleAppender.setContext(logCtx); 
      logConsoleAppender.setName("console"); 
      logConsoleAppender.setEncoder(logEncoder); 
      logConsoleAppender.start(); 

      logEncoder = new PatternLayoutEncoder(); 
      logEncoder.setContext(logCtx); 
      logEncoder.setPattern("%-12date{YYYY-MM-dd HH:mm:ss.SSS} %-5level - %msg%n"); 
      logEncoder.start(); 

      RollingFileAppender logFileAppender = new RollingFileAppender(); 
      logFileAppender.setContext(logCtx); 
      logFileAppender.setName("logFile"); 
      logFileAppender.setEncoder(logEncoder); 
      logFileAppender.setAppend(true); 
      logFileAppender.setFile("logs/logfile.log"); 

      TimeBasedRollingPolicy logFilePolicy = new TimeBasedRollingPolicy(); 
      logFilePolicy.setContext(logCtx); 
      logFilePolicy.setParent(logFileAppender); 
      logFilePolicy.setFileNamePattern("logs/archived/logfile-%d{yyyy-MM-dd_HH}.log.zip"); 
      logFilePolicy.setMaxHistory(7); 
      logFilePolicy.start(); 

      logFileAppender.setRollingPolicy(logFilePolicy); 
      logFileAppender.start(); 

      Logger log = logCtx.getLogger("Main"); 
      log.setAdditive(false); 
      log.setLevel(Level.INFO); 
      log.addAppender(logConsoleAppender); 
      log.addAppender(logFileAppender); 

      return log; 

我也被激活喜歡的應用程序的程序包,喜歡的應用程序資源weblogic-application.xml中。

希望它能幫助別人

相關問題