2016-08-15 3 views
1

Я использую Slf4j с Log4j в моем проекте. В классе MyClass у меня есть переменные, которые содержат строковые значения для loglevel и logpath и List of String, содержащие имена добавок. Я хочу программно переопределить значения этих переменных, которые были настроены в файле log4j.properties. Проблема в том, что переменная LOG имеет тип Log4jLoggerAdapter class. Этот класс не имеет переменных класса, которые я мог бы изменить, и у него нет каких-либо методов настройки, которые я мог бы использовать для настройки уровня журнала, пути журнала или добавления добавлений. Любая помощь будет высоко оценена.Как настроить loglevel, log path и добавить apenders в класс Log4jLoggerAdapter?

import org.slf4j.Logger; 
import org.slf4j.LoggerFactory; 
import org.springframework.beans.factory.annotation.Value; 
import org.springframework.stereotype.Component; 

Public class MyClass 
private static final Logger LOG = LoggerFactory.getLogger(MyClass.class); 

ответ

0

Я думаю, вам нужен ConfigurationFactory. Перед тем, как позвонить в базовый log4j, вы должны настроить конфигурацию на ранней стадии своей точки входа в программу.

0

slf4j - это только фасад для различных рамок каротажа. Таким образом, чтобы изменить конфигурацию, связанную с фреймворком регистрации, вам необходимо использовать классы, предоставляемые этой базой ведения журнала. Для log4j, вы должны сделать

org.apache.log4j.Logger LOG = org.apache.log4j.Logger.getLogger(MyClass.class); 
LOG.setLevel(..); 

Для пути к файлу и другие детали см link