2013-12-26 4 views
1

У меня есть эта конфигурация Log4J, которая записывает сообщения журнала.Установить имя файла журнала с датой

BasicConfigurator.configure(); // Basic configuration for Log4J 1.x 

     ConsoleAppender console = new ConsoleAppender(); //create appender 
     //configure the appender 
     String PATTERN = "%d [%p|%c|%C{1}] %m%n"; 
     console.setLayout(new PatternLayout(PATTERN)); 
     console.setThreshold(Level.FATAL); 
     console.activateOptions(); 
     //add appender to any Logger (here is root) 
     Logger.getRootLogger().addAppender(console); 

     DailyRollingFileAppender fa = new DailyRollingFileAppender(); 
     fa.setName("FileLogger"); 
     fa.setFile("log" + File.separator + "messages.log"); 
     fa.setDatePattern("'.'yyyy-MM-dd"); 
     fa.setLayout(new PatternLayout("%d %-5p [%c{1}] %m%n")); 
     fa.setThreshold(Level.DEBUG); 
     fa.setAppend(true); 
     fa.activateOptions(); 

     //add appender to any Logger (here is root) 
     Logger.getRootLogger().addAppender(fa); //repeat with all other desired appenders 

У меня ошибка в конфигурации кода. Я хочу каждый день записывать новый файл журнала с датой в качестве имени. Теперь я получаю только имя message.log без даты. Можете ли вы помочь мне решить эту проблему?

+0

Я думаю, что код в порядке. Вы не сможете проверить его до полуночи (или если вы не измените время в вашей системе). Согласно документации: «В полночь, 8 марта 2002 года, /foo/bar.log будет скопировано в /foo/bar.log.2002-03-08». – aquaraga

+0

Как сказал aquaraga, DailyRollingFileAppender вносит изменения в имя файла, когда получает регистрацию, даже отвечающую требованию. то есть когда дата является новой, и старое имя файла журнала необходимо добавить с его датой. Вы проверили код, изменив время до полуночи? – Keerthivasan

ответ

3

Нет необходимости беспокоиться, что ваш код нормально :)

Файл журнала ток называется messages.log.

Только при запуске следующего файла это имя изменяется.

От javadoc:

Например, если опция файла устанавливается в /foo/bar.log и DatePattern значение».'yyyy-ММ-ДД, на 2001-02-16 в полночь, файл регистрации /foo/bar.log будет скопирован в /foo/bar.log.2001-02-16 , а регистрация в течение 2001-02-17 продолжится в /foo/bar.log, пока не будет рулоны на следующий день

1

попробовать это:

String PATTERN = "%d{DATE} [%p|%c|%C{1}] %m%n"; 
+0

Нет никакого отношения к его LOGGING PATTERN – Keerthivasan

Смежные вопросы