在生产环境中,项目日志输出是非常有必要的,日志都不知道怎么记录,你就是一个菜鸟程序员,那么,我们在javaweb项目中该如何整合logback日志输出功能呢?下面是小编在项目中使用的logback.xml配置模板,用于将java日志输出到指定的目录中,例如小编将日志输出到了D盘某个文件夹中,配置如下。
<?xml version="1.0" encoding="UTF-8"?>
<configuration>
<!-- 日志输出到的目录位置 -->
<property name="LOG_HOME" value="D:/myLogs" />
<!-- 日志输出样式定义 -->
<appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender">
<encoder class="ch.qos.logback.classic.encoder.PatternLayoutEncoder">
<!--格式化输出:%d表示日期,%thread表示线程名,%-5level:级别从左显示5个字符宽度%msg:日志消息,%n是换行符 -->
<pattern>%d{HH:mm:ss.SSS} [%thread] %-5level %logger{50} - %msg%n
</pattern>
</encoder>
</appender>
<!-- 按照每天生成日志文件 -->
<appender name="FILE"
class="ch.qos.logback.core.rolling.RollingFileAppender">
<rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
<!--日志文件输出的文件名 -->
<FileNamePattern>${LOG_HOME}/logFile.log.%d{yyyy-MM-dd}.log
</FileNamePattern>
<!--日志文件保留天数 -->
<MaxHistory>30</MaxHistory>
</rollingPolicy>
<encoder class="ch.qos.logback.classic.encoder.PatternLayoutEncoder">
<!--格式化输出:%d表示日期,%thread表示线程名,%-5level:级别从左显示5个字符宽度%msg:日志消息,%n是换行符 -->
<pattern>%d{HH:mm:ss.SSS} [%thread] %-5level %logger{50} - %msg%n
</pattern>
</encoder>
<!--日志文件最大的大小 -->
<triggeringPolicy
class="ch.qos.logback.core.rolling.SizeBasedTriggeringPolicy">
<MaxFileSize>10MB</MaxFileSize>
</triggeringPolicy>
</appender>
<!-- 日志输出级别 -->
<root level="INFO">
<appender-ref ref="STDOUT" />
<appender-ref ref="FILE" />
</root>
</configuration>当然了,我们的javaweb项目整合logback日志的时候,需要在我们的项目中导入logback jar包,否则是无法使用的,logback maven代码如下:
<!-- 日志文件管理包 --> <dependency> <groupId>ch.qos.logback</groupId> <artifactId>logback-classic</artifactId> <version>1.1.8</version> </dependency>
导入logback jar包之后,要想将日志信息输出到“D:/myLogs”目录下,需要创建logger对象,类似如下所示,这样日志就会记录到D盘的目录下了:
package com.tpyyes.controller;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
public class UserController {
private static final Logger log = LoggerFactory.getLogger(UserController.class);
public void test(){
log.warn("这是输出警告信息");
log.info("这是输出正常信息");
log.error("这是输出错误信息");
}
}