log4j не находит приложений - PullRequest
0 голосов
/ 19 мая 2018

Всегда я пытаюсь использовать формальные и структурированные журналы API, это кошмар (это объясняет, почему так много людей просто печатают на консоли)

Я пытаюсь использовать log4j в моем проекте

чтобы создать журнал, я делаю:

   private static final Logger log = LoggerFactory.getLogger(Instagram.class.getPackage().getName());

когда я хочу зарегистрировать событие, которое я делаю:

log.info("some information");

у меня есть файл log4j.properties в папке src, например:

log4j.logger.com.tomatechines.instagramapi.api = INFO, CONSOLE, FILE, ERROR

log4j.rootLogger = INFO, FILE, ERROR

log4j.appender.FILE=org.apache.log4j.DailyRollingFileAppender
log4j.appender.FILE.DatePattern = yyyy-MM-dd'.log'
log4j.appender.FILE.File = logs/log-
log4j.appender.FILE.layout = org.apache.log4j.PatternLayout
log4j.appender.FILE.layout.conversionPattern=%d{HH:mm:ss.SSS} %-5p %C{1}:%L - %m%n

log4j.appender.ERROR=org.apache.log4j.DailyRollingFileAppender
log4j.appender.ERROR.DatePattern = yyyy-MM-dd'.log'
log4j.appender.ERROR.File = logs/errorlog-
log4j.appender.ERROR.layout = org.apache.log4j.PatternLayout
log4j.appender.ERROR.layout.conversionPattern=%d{HH:mm:ss.SSS} %-5p %C{1}:%L - %m%n
log4j.appender.ERROR.Threshold=WARN

log4j.appender.CONSOLE=org.apache.log4j.ConsoleAppender
log4j.appender.CONSOLE.layout=org.apache.log4j.PatternLayout
log4j.appender.CONSOLE.layout.conversionPattern=%d{HH:mm:ss.SSS} %-5p %C{1}:%L - %m%n

но когда код запускается, единственное, что выводится на консоль или файл:

log4j:WARN No appenders could be found for logger (com.tomatechines.instagramapi.api).
log4j:WARN Please initialize the log4j system properly.
log4j:WARN See http://logging.apache.org/log4j/1.2/faq.html#noconfig for more info.

почему, черт возьми, он не находит мой файл, я установил 3 приложения и почемуне могу найти только один

Ответы [ 2 ]

0 голосов
/ 19 мая 2018

Прежде всего, я вижу, что вы используете SLF4J с log4j 1.2.x, потому что вы создаете экземпляр регистратора с помощью LoggerFactory.getLogger.Если вы хотите использовать только log4j 1.2.x, вы должны получить регистратор с Logger.getLogger.Убедитесь, что вы импортировали классы из пакета org.apache.log4j.

Вы также должны убедиться, что вы поместили файл log4j.properties в classpath.И, на мой взгляд, вы должны попробовать сначала с очень простой конфигурацией, чтобы избежать проблем с конфигурацией.Что-то вроде:

# Root logger option
log4j.rootLogger=INFO, stdout

# Direct log messages to stdout
log4j.appender.stdout=org.apache.log4j.ConsoleAppender
log4j.appender.stdout.Target=System.out
log4j.appender.stdout.layout=org.apache.log4j.PatternLayout
log4j.appender.stdout.layout.ConversionPattern=%d{yyyy-MM-dd HH:mm:ss} %-5p %c{1}:%L - %m%n

Возможно, ваша проблема в расположении файла log4j.properties.

0 голосов
/ 19 мая 2018

Ваш файл конфигурации в порядке;проблема заключается в том, что этот файл конфигурации не включается в ваш путь к классам во время выполнения.

Вы должны поместить файл log4j.properties в папку src/main/resources.

(если вы используете стандартныйнастройки maven или gradle, в противном случае это зависит от того, какую IDE вы используете)

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