具有logback和slf4j设置的Java webapp

时间:2016-10-24 09:50:37

标签: logging logback slf4j

我正在尝试使用sl4j和logback设置项目。

我有一些问题:

  • 我的日志文件未创建。
  • 我是我的控制台,我有来自外部lib的日志记录我的记录器配置

这是我目前的配置:

的pom.xml

<org.slf4j.version>1.7.21</org.slf4j.version>
    <ch.qos.logback.version>1.1.7</ch.qos.logback.version>

<dependency>
        <groupId>org.slf4j</groupId>
        <artifactId>slf4j-api</artifactId>
        <version>${org.slf4j.version}</version>
    </dependency>

    <dependency>
        <groupId>ch.qos.logback</groupId>
        <artifactId>logback-classic</artifactId>
        <version>${ch.qos.logback.version}</version>
    </dependency>
    <dependency>
        <groupId>ch.qos.logback</groupId>
        <artifactId>logback-core</artifactId>
        <version>${ch.qos.logback.version}</version>
    </dependency>

的web.xml

<context-param>
    <param-name>logbackConfigLocation</param-name>
    <param-value>/WEB-INF/logback.xml</param-value>
</context-param>

logback.xml(在src / main / WEB-INF文件夹中)

<?xml version="1.0" encoding="UTF-8"?>

<property name="logdir" value="c:" />

<appender class="ch.qos.logback.core.ConsoleAppender" name="STDOUT">
    <encoder>
        <pattern>%d{HH:mm:ss.SSS} %-5level %logger{0} - %msg%n</pattern>
    </encoder>
</appender>

<appender class="ch.qos.logback.core.rolling.RollingFileAppender"
    name="FILE-TEST">

    <file>${logdir}/test.log</file>
    <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
        <!-- rollover daily -->
        <fileNamePattern>${test}-%d{yyyy-MM-dd}.%i.log
        </fileNamePattern>
        <!-- Keep logs for 15 days -->
        <maxHistory>15</maxHistory>
    </rollingPolicy>

    <encoder>
        <pattern>%d{HH:mm:ss.SSS} %-5level %logger{0} - %msg%n</pattern>
    </encoder>
</appender>

<logger name="com.perso.project" level="TRACE" additivity="false"/>


<!-- External libs -->
<logger name="ch.qos.logback" level="WARN"/>
<logger name="org.springframework" level="WARN"/>
<logger name="org.apache.commons" level="WARN"/>
<logger name="org.hibernate" level="ERROR"/>
<logger name="org.hibernate.SQL" level="ERROR"/>

<!-- Default og level -->
<root level="DEBUG">
    <appender-ref ref="FILE-TEST" />
    <appender-ref ref="STDOUT" />
</root>

就像我说的那样,我只登录我的tomcat控制台(在eclipse中)并且没有创建test.log文件。

这就是我在控制台上的内容。我在想我的记录器配置应该避免这种情况:

[...] 11:43:16.982 [localhost-startStop-1] DEBUG org.springframework.orm.jpa.EntityManagerFactoryUtils - 关闭JPA EntityManager 11:43:16.983 [localhost-startStop-1] DEBUG org.springframework.data.jpa.repository.query.JpaQueryFactory - 查找方法findParametreByType的查询 11:43:16.985 [localhost-startStop-1] DEBUG org.hibernate.hql.internal.ast.QueryTranslatorImpl - --- HQL AST --- [...]

提前致谢

对于附加信息,所有hibernate和spring都包含在我的com.perso.project依赖项中,该依赖项包含日志但没有logback.xml文件

1 个答案:

答案 0 :(得分:0)

问题是因为$ {test} var不再存在。 我还将我的logback从WEB-INF目录移动到资源目录,它修复了记录外部lib的问题。