Вход во временный каталог кроссплатформенным способом

StackOverflow https://stackoverflow.com/questions/314713

  •  10-07-2019
  •  | 
  •  

Вопрос

У меня есть приложение, для которого ведение журнала log4j настроено в файле log4j.properties.В настоящее время это приложение работает в UNIX и создает файл журнала в /tmp.Это приложение должно запускаться в Windows, и на этой платформе я хотел бы, чтобы оно выбрало правильный временный каталог, который, как я полагаю, является C: emp.

Как я могу изменить свой файл log4j.properties, чтобы это произошло?Нужно ли мне переключиться на использование файла конфигурации XML?

Это было полезно?

Решение

Я думаю, вы бы просто использовали $ {java.io.tmpdir} вместо жестко заданного пути.

Другие советы

Начиная с Log4J версии v1.2.14, я смог использовать это как в файле log4j.xml, так и в файле log4j.properties.В Интернете было некоторое обсуждение того, что переменные не будут анализироваться в DOMReader, но они это делают начиная с этой версии log4j.

<appender name="rolling_file_appender_ourapp" class="org.apache.log4j.RollingFileAppender">
    <param name="File" value="${user.home}/.mycompany/OurApp.log" />
    <param name="Append" value="false" />
    <param name="MaxFileSize" value="10MB" />
    <param name="MaxBackupIndex" value="3" />
    <layout class="org.apache.log4j.PatternLayout">
        <param name="ConversionPattern" value="%d | %-5p | %c | %m | %t | %x %n" />
    </layout>
</appender>

или

log4j.appender.rfile=org.apache.log4j.FileAppender
log4j.appender.rfile.layout=org.apache.log4j.PatternLayout
log4j.appender.rfile.Append=false
log4j.appender.rfile.layout.ConversionPattern=%d [%p] %c %m%n
log4j.appender.rfile.File=${user.home}/.mycompany/OurApp.log
Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top