在生产环境中,项目日志输出是非常有必要的,日志都不知道怎么记录,你就是一个菜鸟程序员,那么,我们在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("这是输出错误信息"); } }