Я работаю над приложением, использующим Spring и slf4j. Это приложение использует больше ApplicationContext параллельно. Есть ли какой-либо способ для этих различных ApplicationContexts использовать разные свойства журналирования? Итак, первый AC может войти в «x.txt», а второй - в «y.txt».Spring: разные правила ведения журнала для разных приложений ApplicationContext
Я бы не хотел использовать больше файлов свойств. Соответствующим способом было бы определить файл конфигурации Logger Bean in Spring XML, в котором я мог бы установить другую цель вывода для соответствующего свойства.
Например:
<bean id="LoggerBean" class="???">
<property name="target" value="${target}" />
</bean>
Здесь я мог манипулировать целевой переменной от источника, который был бы очень кстати.
private static final Logger log = LoggerFactory.getLogger(MyClass.class);
Так LoggerFactory.getLogger
будет использовать конфигурацию LoggerBean
боба, чтобы создать экземпляр класса Logger.
Мне нужен метод, в котором каждый ApplicationContext имеет собственный объект LoggerFactory
с различными свойствами (например, с другим целевым выходом). Поэтому мне не пришлось бы переписывать текущий код.
Я использую ApplicationContexts
, настроенный тем же конфигурационным файлом xml. Таким образом, эти ApplicationContexts используют те же классы. Из-за этого все Logger
создаются от LoggerFactory
с теми же именами классов, в которых они использовались. Все регистраторы создаются по LoggerFactory.getLogger(MyClass.class)
формам, так как эти классы одинаковы во всех ApplicationContext
(«MyClass»), я не могу определить по-другому Loggers
,
Спасибо за любой ответ.
приватный статический конечный журнал регистрации Log = LoggerFactory.getLogger (MyClass.class); Здесь статический метод org.slf4j.LoggerFactory генерирует класс org.slf4j.Logger. Мне нужен метод, в котором каждый ApplicationContext имеет собственный объект LoggerFactory с различными свойствами (например, с другим целевым выходом). Поэтому мне не пришлось бы переписывать текущий код, просто поменяйте операторы импорта на мою реализацию LoggerFactory. – Sharp
Изменен FactoryBean, чтобы вернуть регистратор SLF4J –