我正在使用Spring和slf4j的应用程序。该应用程序并行使用更多的ApplicationContext。 有没有办法让这些不同的ApplicationContexts使用不同的日志记录属性? 因此,第一个AC可以登录到“x.txt”,而第二个登录到“y.txt”。Spring:针对不同ApplicationContext的不同日志记录行为
我不想使用更多的属性文件。适当的方法是在Spring XML配置文件中定义一个Logger Bean,我可以在其中为相应的属性设置不同的输出目标。
例如:
<bean id="LoggerBean" class="???">
<property name="target" value="${target}" />
</bean>
在这里,我可以操纵来自源的目标变量,这将是非常方便的。
private static final Logger log = LoggerFactory.getLogger(MyClass.class);
所以LoggerFactory.getLogger
将使用LoggerBean
bean的配置实例化一个记录器类。
我需要一个方法,其中每个ApplicationContext都有自己的LoggerFactory
具有不同属性(如不同的目标输出)的对象。所以我不必重写当前的代码。
我使用ApplicationContexts
由相同的xml配置文件配置。所以这些ApplicationContexts使用 相同的类。正因为如此,所有Logger
从LoggerFactory
实例化他们英寸 所有记录仪使用LoggerFactory.getLogger(MyClass.class)
形式实例化的同一类的名称,因为这些类在所有ApplicationContext
(“MyClass的”),我不能定义不同的名称Loggers
相同。
感谢您的回复。
private static final Logger log = LoggerFactory.getLogger(MyClass.class); 这里org.slf4j.LoggerFactory的静态方法会生成一个org.slf4j.Logger类。 我需要一个方法,其中每个ApplicationContext都有一个具有不同属性的LoggerFactory对象(如不同的目标输出)。 因此,我不必重写当前的代码,只需将导入语句交换到我的LoggerFactory实现。 – Sharp 2010-12-13 15:34:18
更改FactoryBean返回SLF4J记录器 – 2010-12-14 09:57:06