Log4j FileAppender программно использует другой часовой пояс - PullRequest
0 голосов
/ 13 ноября 2018

Можно ли установить org.apache.log4j.FileAppender на log , который отличается от часового пояса, который запущено приложением?Чтобы было ясно, я не говорю о добавлении часового пояса к тому, что печатается в журнале, но скорее для самой отметки времени, чтобы было другим часовым поясом.

Например,мы используем Wildfly в качестве сервера приложений, и все в server.log отображается по местному времени.Это хорошо.

Однако, когда наше приложение запускается, мы делаем java.util.setDefault(TimeZonze.getTimeZone("UTC")); Это делается для того, чтобы все встроенные устройства на всех клиентах можно было сохранять и сравнивать друг с другом по общему времени.

Это означает, что когда мы программно настроим наш FileAppender позже для записи материала в несколько разных динамически именованных файлов журнала, их временные метки будут напечатаны в UTC.Но мы хотим, чтобы эти журналы, сгенерированные из FileAppender для , также , были напечатаны по местному времени.

Есть ли способ сделать это?

Ниже описано, как мы настраиваем наш FileAppender.:

public void addFileAppender(String someDynamicName) {
    FileAppender appender = new FileAppender();
    appender.setName(someDynamicName);
    appender.setFile(getLogDir().getPath() + "/" + someDynamicName + ".log");
    appender.setLayout(new PatternLayout("%d{yyyy-MM-dd HH:mm:ss,SSS} %-5p [%c] (%t) %m%n"));
    appender.setThreshold(org.apache.log4j.Level.DEBUG);
    appender.setAppend(true);
    appender.activateOptions();
    Logger.getLogger(someDynamicName).addAppender(appender);
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...