16

我有一个使用 log4j 的项目。现在我要介绍一个使用 slf4j 的库。我可以要求 slf4j 根据 log4j 配置进行自我初始化吗?所以我基本上希望 log4j 作为 slf4j 下的底层库。

更新:

log4j 配置是这样的:

<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE log4j:configuration SYSTEM "log4j.dtd">

<log4j:configuration debug="true" xmlns:log4j="http://jakarta.apache.org/log4j/">
    <appender name="fileAppender" class="org.apache.log4j.rolling.RollingFileAppender">
        <param name="file" value="${log.dir}/${log.file}.log" />
        <param name="append" value="true" />
        <rollingPolicy class="org.apache.log4j.rolling.TimeBasedRollingPolicy">
            <param name="FileNamePattern" value="${archive.log.dir}/${log.file}.%d{yyyy-MM-dd}.gz" />
            <param name="ActiveFileName" value="${log.dir}/${log.file}.log"/>
        </rollingPolicy>
        <layout class="org.apache.log4j.EnhancedPatternLayout">
            <param name="ConversionPattern" value="%d{yyMMdd HH:mm:ss,SSS} [%t] %-5p %c %X %m%n" />
        </layout>
    </appender>
    <logger name="org.hibernate"> 
        <level value="ALL" /> 
        <appender-ref ref="fileAppender"/> 
    </logger> 
    <root>
        <priority value="info" />
        <appender-ref ref="fileAppender" />
    </root>
</log4j:configuration>

我还使用 apache-log4j-extras 1.0 版。log4j 版本是 1.2.16

4

1 回答 1

25

是的,您的项目的类路径中需要三个jar文件:

slf4j-api-1.6.1.jar       // the slf4j API
slf4j-log4j12-1.6.1.jar   // log4j bindings for slf4j
log4j-1.2.15.jar          // log4j itself

确保您拥有相同版本的slf4j-apiand slf4j-log4j12,否则将无法正常工作。如果我没记错的话,您也可以使用最新的 log4j 版本 1.2.16。

于 2010-11-29T11:14:50.953 回答