Я работаю над приложением, которое использует Spring и slf4j. Это приложение использует больше ApplicationContext параллельно.
Есть ли способ, чтобы эти разные ApplicationContexts использовали разные свойства ведения журнала?
Таким образом, первый AC может войти в «x.txt», а второй в «y.txt».
Я не хотел бы использовать больше файлов свойств. Надлежащим способом было бы определить файл конфигурации Logger Bean в 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
с теми же именами классов, в которых они использовались.
Все Logger создаются в форме LoggerFactory.getLogger(MyClass.class)
, так как эти классы одинаковы во всех ApplicationContext
("MyClass"), я не могу определить по-разному Loggers
.
Спасибо за любой ответ.