Logger slf4j - Как задать уровень логирования при запуске?

224
11 ноября 2018, 22:50

Всем привет!

Я в spring-app.xml задал бин лога:

<bean id="logger" scope="prototype" class="org.slf4j.LoggerFactory" factory-method="getLogger">
        <constructor-arg name="name" value="log"/>
</bean>

Дальше, я расставил в классах нужные мне уровни логгирования для различных ситуаций:

@Autowired
private Logger log;
log.warn(...);
log.info(...);
log.debug(...);

У меня есть текстовый файл config.conf, который я подгружаю в программу при запуске:

Properties properties = new Properties();
properties.load(this.getClass().getClassLoader().getResourceAsStream(configFile));

Как сделать, чтоб уровень логирования (info, debug), скажем для консоли, я мог указать в файле config.conf?

Answer 1

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

и теперь можно настраивать логгирование и уровень логирования по-разному

# Root logger option
log4j.rootLogger=INFO, file, stdout
# Direct log messages to a log file
log4j.appender.file=org.apache.log4j.RollingFileAppender
log4j.appender.file.File=C:\\logging.log
log4j.appender.file.MaxFileSize=10MB
log4j.appender.file.MaxBackupIndex=10
log4j.appender.file.layout=org.apache.log4j.PatternLayout
log4j.appender.file.layout.ConversionPattern=%d{yyyy-MM-dd HH:mm:ss} %-5p %c{1}:%L - %m%n
# 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.appender.stdout.filter.a.LevelMin=DEBUG
log4j.appender.stdout.filter.a.LevelMax=INFO

тогда только для консоли будут логированы только DEBUG и INFO уровни. Но общий уровень задается в первой строчке log4j.rootLogger=INFO. если вам нужны уровни ниже, то просто укажите другой уровень логирования

READ ALSO
Как вынуть и изменить нужную строку?

Как вынуть и изменить нужную строку?

Есть цифровые данные, например: "Яблоки: 20", "Груши: 50"Числа эти меняются

160
Популярность JAVA после замены android&#39;a Fuchsia OS [закрыт]

Популярность JAVA после замены android'a Fuchsia OS [закрыт]

Как вы считаете, сбросит ли в популярности java после окончания поддержки android и полного перехода на Fuchsia OS ( к 2022-23 г)? Отразится ли это на зарплатах...

198
Неправильно отображается свой курсор в Google Chrome

Неправильно отображается свой курсор в Google Chrome

Помогите разобраться в проблемеУстанавливаю свой курсор на сайт через CSS свойство cursor

152
Конфликт стилей в style.css

Конфликт стилей в style.css

ИтакЕсть 2 выпадающих меню

215