У меня есть приложение, которое работает каждые 15 минут, 23 часа в сутки. Большую часть времени он «просыпается», видит, что нет данных для обработки и закрытия. Во время проверки инициализации и ввода данных есть записи журнала DEBUG, которые записываются только на консоль. Только после того, как приложение обнаружило данные для обработки, оно записывает что-либо в файл журнала (уровень INFO и выше). Проблема заключается в том, что пробелы «нет данных для обработки» создают пустые файлы журналов, хотя ничто не записывается в них. Поскольку это происходит почти 100 раз в день, это поведение нежелательно.Log4j создает пустой файл до его необходимости
Я могу легко реализовать метод для ручного удаления этих файлов, если они не нужны, но это кажется ... взломанным. Есть ли способ заставить Log4j ждать при создании файла журнала, пока на нем не будет написано что-то? Благодаря!
Соответствующая часть log4j.properties:
log4j.appender.myFileLogger=org.apache.log4j.RollingFileAppender
log4j.appender.myFileLogger.Append=false
log4j.appender.myFileLogger.File=D:/Imaging/myApp/logs/myApp_${current.date}.log
log4j.appender.myFileLogger.threshold=INFO
log4j.appender.myFileLogger.layout=org.apache.log4j.PatternLayout
log4j.appender.myFileLogger.layout.ConversionPattern=%d{yyyy-MM-dd HH:mm:ss} %-5p %c{1}:%L - %m%n
Вы можете удалить HH: мм: сс часть из вашего файла и иметь ежедневный журнал? Я думаю, что может быть полезно знать, что ничего не обработано, и, возможно, это явная регистрация. Увы, извините, у меня нет ответа на ваш вопрос. Это интересно. – dckuehn
Роллинг ежедневных журналов был оригинальным решением, и я вполне могу вернуться к этому. Его странная настройка, когда входные данные доставляются всякий раз, когда это удобно, поэтому несколько входных файлов могут быть доставлены сразу и обрабатываться последовательно. Надежда состояла в том, чтобы получить один файл журнала для каждого файла обработки/ввода, но его незначительная проблема в любом направлении. В основном любопытство на данный момент :) – jfaulk919