Можно ли установить 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);
}