Я приложил все усилия, чтобы настроить Eclipse и мое Java-приложение для использования файла log4j.properties
. Однако, похоже, что он не использует файл свойств, и я не уверен, почему.
Библиотеки: slf4j-api-1.6.1, slf4j-jdk14-1.6.1
В приложении логирование отлично работает. Я могу печатать информацию, предупреждения и ошибки в консоли Eclipse.
Что я хотел бы сделать, так это изменить уровень журнала на отладку и распечатать все сообщения журнала как в консоли, так и в файле журнала.
Я создал log4j.properties
файл, который выглядит следующим образом:
log4j.rootLogger=DEBUG,console,file
log4j.rootCategory=DEBUG, R, O
# Stdout
log4j.appender.O=org.apache.log4j.ConsoleAppender
# File
log4j.appender.R=org.apache.log4j.RollingFileAppender
log4j.appender.R.File=log4j.log
# Control the maximum log file size
log4j.appender.R.MaxFileSize=100KB
# Archive log files (one backup file here)
log4j.appender.R.MaxBackupIndex=5
log4j.appender.file.File=checkLog.log
log4j.appender.file.threshold=DEBUG
log4j.appender.R.layout=org.apache.log4j.PatternLayout
log4j.appender.O.layout=org.apache.log4j.PatternLayout
log4j.appender.R.layout.ConversionPattern=[%d{ISO8601}]%5p%6.6r[%t]%x - %C.%M(%F:%L) - %m%n
log4j.appender.O.layout.ConversionPattern=[%d{ISO8601}]%5p%6.6r[%t]%x - %C.%M(%F:%L) - %m%n
Моя структура каталогов выглядит так:
My Project
--src/
----MYProject/
------*.java
--bin/
----MYProject/
------*.class
--log4j/
----log4j.properties
В Eclipse я это так:
Запустить конфигурации -> Путь к классу (вкладка) -> , щелкнуть правой кнопкой мыши на Записи пользователя -> Добавить «log4j» в качестве новой папки и сохранить.
Затем в своем коде я называю регистратор следующим образом (пример кода, демонстрирующий мой подход, чтобы он мог иметь синтаксические ошибки):
package MYProject;
import org.slf4j.LoggerFactory;
public class MyClass{
final org.slf4j.Logger test_logger = LoggerFactory.getLogger(MyClass.class);
public MyClass(){}
public someMethod(){
test_logger.debug("Some Debug");
test_logger.info("Some Info");
test_logger.warn("Some Warning");
test_logger.error("An Error");
}
}
Затем я вызываю someMethod
, и он печатает INFO
, WARN
, ERROR
на консоли Eclipse. Он не печатает DEBUG
и не печатает в файл.
Буду признателен за любые предположения о том, что я могу делать неправильно.