[英]Logback doesn't log into file
我在项目中使用了logback,但它没有登录到文件中。
我的logback.xml看起来像这样
<property file="api.properties"/>
<appender name="FILE-AUDIT"
class="ch.qos.logback.core.rolling.RollingFileAppender">
<file>c:/debug.log</file>
<encoder class="ch.qos.logback.classic.encoder.PatternLayoutEncoder">
<Pattern>
%d{yyyy-MM-dd HH:mm:ss} - %msg%n
</Pattern>
</encoder>
<rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
<!-- rollover daily -->
<fileNamePattern>c:/archived/debug.%d{yyyy-MM-dd}.%i.log</fileNamePattern>
<timeBasedFileNamingAndTriggeringPolicy
class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP">
<maxFileSize>10MB</maxFileSize>
</timeBasedFileNamingAndTriggeringPolicy>
</rollingPolicy>
</appender>
<appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender">
<!-- encoders are assigned the type
ch.qos.logback.classic.encoder.PatternLayoutEncoder by default -->
<encoder>
<pattern>%d{HH:mm:ss.SSS} [%thread] %-5level %logger{5} - %msg%n</pattern>
</encoder>
</appender>
<logger name="JDBC" level="INFO" additivity="false">
<appender-ref ref="STDOUT" />
<appender-ref ref="FILE-AUDIT" />
</logger>
<logger name="RESTSecurity" level="INFO" additivity="false">
<appender-ref ref="STDOUT" />
<appender-ref ref="FILE-AUDIT" />
</logger>
<logger name="models" level="INFO" additivity="false">
<appender-ref ref="STDOUT" />
<appender-ref ref="FILE-AUDIT" />
</logger>
<!-- Strictly speaking, the level attribute is not necessary since -->
<!-- the level of the root level is set to DEBUG by default. -->
<root level="DEBUG">
<appender-ref ref="STDOUT" />
</root>
并将其放在WEB-INF / classs中。
我用这些依赖
<dependency>
<groupId>ch.qos.logback</groupId>
<artifactId>logback-classic</artifactId>
<version>${logback.version}</version>
</dependency>
<dependency>
<groupId>ch.qos.logback</groupId>
<artifactId>logback-core</artifactId>
<version>${logback.version}</version>
</dependency>
当我在WebLogic服务器上运行我的应用程序时,我会在控制台中获取日志消息,但它不会创建日志文件。 有人知道怎么了吗?
编辑:我尝试同时使用
private static final Logger logger = LoggerFactory.getLogger("JDBC");
和
private static final Logger logger = LoggerFactory.getLogger(Roles.class);
因为该类在JDBC包中。 那我就做
logger.info("Initializing roles");
EDIT2:因为我在控制台中收到的日志消息看起来与logback.xml中的不同,因此它似乎根本忽略了我的logback.xml。
问题必须来自Weblogic,它不会从您的类路径中获取SLF4J / Logback。
将以下prefer-application-packages
到您的weblogic.xml
:
<prefer-application-packages>
<package-name>org.slf4j.*</package-name>
<package-name>ch.qos.logback.*</package-name>
</prefer-application-packages>
您必须将所有附加程序添加到日志级别,如果要DEBUG记录到文件,请添加如下引用:
<root level="DEBUG">
<appender-ref ref="STDOUT" />
<appender-ref ref="FILE-AUDIT" />
</root>
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.