log4j прекратил запись в файл, - PullRequest
7 голосов
/ 05 июля 2010

Я использую log4j в своем java-приложении, но через некоторое время без каких-либо исключений он прекратил запись

моя конфигурация log4j такая же, как показано ниже.

log4j.rootLogger=INFO,FILE
log4j.appender.FILE=com.test.TestFIleAppender
log4j.appender.FILE.MaxFileSize=20MB
log4j.appender.FILE.MaxBackUpIndex=200

Мой файл appender содержит некоторый код для выполнения операции zip и для указания формата файла журнала и все.

В течение некоторого времени это работало нормально, но регистрация внезапно прекратилась, исключение также не выдается

Может ли кто-нибудь сказать мне, в чем может быть проблема?

Кто-нибудь знает какие-либо проблемы, связанные с log4j, как это?

Ответы [ 5 ]

4 голосов
/ 20 ноября 2012

Это случилось со мной.Работаем один день, а затем не работаем на следующий.Я вернулся и понял, что изменил зависимости POM и немного погуглил.

Когда я исправил эту проблему, мой журнал вернулся.Я хотел бы убедиться, что у вас есть следующие артефакты в синхронизации:

    <dependency>
        <groupId>org.slf4j</groupId>
        <artifactId>slf4j-api</artifactId>
        <version>1.7.1</version>
    </dependency>

    <dependency>
        <groupId>org.slf4j</groupId>
        <artifactId>slf4j-simple</artifactId>
        <version>1.7.1</version>
    </dependency>

    <dependency>
        <groupId>log4j</groupId>
        <artifactId>log4j</artifactId>
        <version>1.2.17</version>
    </dependency>

http://www.slf4j.org/manual.html

1 голос
/ 05 июля 2010

Трудно ответить, почему ваша регистрация останавливается.

Сначала проверьте место на жестком диске, не заполнено ли оно.

Чем написать контрольный пример, в котором поток опрашивает сообщение регистрации типа INFO каждую секунду. Чем вы можете проверить, является ли это проблемой с пространством или памятью.

Обратите внимание: когда ваша программа где-то ждет и не работает ни один поток или действие, вы не увидите никаких сообщений в журнале. Пожалуйста, проверьте путем отладки, выполняется ли строка кода в цикле (или как вы ожидаете увидеть сообщения), в котором должно отображаться сообщение регистрации.

Это пример моего файла свойств log4j. Может быть, это полезно:

log4j.rootLogger=INFO, stdout, logfile

log4j.appender.stdout=org.apache.log4j.ConsoleAppender
log4j.appender.stdout.layout=org.apache.log4j.PatternLayout
log4j.appender.stdout.layout.ConversionPattern=%d %p (%t) [%c] - %m%n

log4j.appender.logfile=org.apache.log4j.RollingFileAppender
log4j.appender.logfile.File=C:/log/client.log
log4j.appender.logfile.MaxFileSize=5MB
log4j.appender.logfile.MaxBackupIndex=0
log4j.appender.logfile.layout=org.apache.log4j.PatternLayout
log4j.appender.logfile.layout.ConversionPattern=%d %p [%c] - %m%n
0 голосов
/ 19 ноября 2015

Вероятно, очень редкая ситуация, но однажды я столкнулся с подобной проблемой, которая была вызвана использованием Cloner .После клонирования объекта с включенным ведением журнала log4j ведение журнала просто перестало работать.Решение состояло в том, чтобы исключить классы log4j из клонирования с помощью:

cloner.dontClone(org.apache.log4j.Logger.class, org.apache.log4j.LogManager.class,)

0 голосов
/ 10 апреля 2015

Это случилось со мной после добавления библиотеки sardine в мои зависимости.Затем из одного из ответов здесь я добавил библиотеку slf4j-log4j12 к зависимостям, и она снова начала работать.

0 голосов
/ 05 июля 2010

Рассматривали ли вы возможность того, что log4j все еще выполняет запись в файл, но этот файл был удален вашим родительским приложением из родительского каталога?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...