Log4j2 «Невозможно переместить файл» ошибка при использовании RollingFileAppender с прокруткой миллисекундного уровня - PullRequest
0 голосов
/ 10 июня 2019

Я пытаюсь настроить Log4j2 на прокрутку и запись файлов с точностью до миллисекунды.

Конфигурация (соответствующие части), которую я использовал, выглядит следующим образом:

status=error

dest = err

property.filename = logs/dims/${env:HOSTNAME}/logging-${date:yyyy-MM-dd'T'HH:mm:ss,SSSSS}.log

appenders = console, rolling

## Rolling File Appender
appender.rolling.type = RollingFile
appender.rolling.name = RollingFile
appender.rolling.append = true
appender.rolling.fileName = ${filename}
appender.rolling.filePattern = logs/dims/${env:HOSTNAME}/logging-%d{yyyy-MM-dd'T'HH:mm:ss,SSSS}.log

appender.rolling.policies.type = Policies
appender.rolling.policies.time.type = TimeBasedTriggeringPolicy

rootLogger.level = info
rootLogger.appenderRefs = console, rolling

rootLogger.appenderRef.console.ref = STDOUT
rootLogger.appenderRef.rolling.ref = RollingFile

Файлы журнала создаются с необходимой гранулярностью, но я вижу ошибки в консоли следующим образом:

2019-06-10 10: 57: 41 689 основная ОШИБКА Невозможно переместить журналы файлов / dims / dsp / logging-2019-06-10T10: 57: 31,00358.log в журналы / dims / dsp / logging-2019 -06-10T10: 57: 41,0587.log: java.nio.file.NoSuchFileException logs / dims / dsp / logging-2019-06-10T10: 57: 31,00358.log -> logs / dims / dsp / logging -2019-06-10T10: 57: 41,0587.log

Но два файла logging-2019-06-10T10:57:31,00358.log и logging-2019-06-10T10:57:41,0587.log в ошибке присутствуют, когда я делаю ls.

Может ли кто-нибудь помочь мне понять, что является причиной этой ошибки и как ее предотвратить?

1 Ответ

0 голосов
/ 11 июня 2019

Я выполнял это на консоли Ubuntu bash для Windows 10. Хотя консоль bash предоставляет интерфейс, похожий на Linux, я думаю, приемлемые символы в имени файла все еще определяются базовой системой Windows. Файлы журнала создаются, но у регистратора, похоже, возникают проблемы при переходе на новый файл из-за : в именах файлов.

Судя по комментариям Викаса, я запускал тот же код на машине с Linux, и тогда ошибок не было.

...