林炳文Evankaka原创作品。转载请注明出处http://blog.csdn.net/evankaka
摘要:本文主要介绍了如何在spring、springMVC中使用logback
一、logback与Spirng结合使用
1、maven添加引用:
<dependency>
<groupId>log4j</groupId>
<artifactId>log4j</artifactId>
<version>${log4j.version}</version>
</dependency>
<dependency>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-api</artifactId>
<version>${slf4j.version}</version>
</dependency>
<dependency>
<groupId>ch.qos.logback</groupId>
<artifactId>logback-classic</artifactId>
<version>1.1.2</version>
</dependency>
<dependency>
<groupId>ch.qos.logback</groupId>
<artifactId>logback-core</artifactId>
<version>1.1.2</version>
</dependency>
<dependency>
<groupId>org.logback-extensions</groupId>
<artifactId>logback-ext-spring</artifactId>
<version>0.1.1</version>
</dependency>
其中logback-ext-spring这个jar包是为了和spring一起使用的。
2、src/main/resource添加logback.xml
<?xml version="1.0" encoding="UTF-8"?>
<configuration>
<!-- 尽量别用绝对路径,如果带参数不同容器路径解释可能不同,以下配置参数在pom.xml里 -->
<property name="log.root.level" value="${log.root.level}" /> <!-- 日志级别 -->
<property name="log.other.level" value="${log.other.level}" /> <!-- 其他日志级别 -->
<property name="log.base" value="${log.base}" /> <!-- 日志路径,这里是相对路径,web项目eclipse下会输出到eclipse的安装目录下,如果部署到linux上的tomcat下,会输出到tomcat/bin目录 下 -->
<property name="log.moduleName" value="${log.moduleName}" /> <!-- 模块名称, 影响日志配置名,日志文件名 -->
<property name="log.max.size" value="100MB" /> <!-- 日志文件大小 -->
<!--控制台输出 -->
<appender name="stdout" class="ch.qos.logback.core.ConsoleAppender">
<encoder class="ch.qos.logback.classic.encoder.PatternLayoutEncoder">
<Pattern>%date{yyyy-MM-dd HH:mm:ss.SSS} %-5level [%thread]%logger{56}.%method\(\):%L -%msg%n</Pattern>
</encoder>
</appender>
<!-- 日志文件输出 -->
<appender name="file" class="ch.qos.logback.core.rolling.RollingFileAppender">
<File>${log.base}/${log.moduleName}.log</File><!-- 设置日志不超过${log.max.size}时的保存路径,注意如果 是web项目会保存到Tomcat的bin目录 下 -->
<!-- 滚动记录文件,先将日志记录到指定文件,当符合某个条件时,将日志记录到其他文件。-->
<rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
<FileNamePattern>${log.base}/archive/${log.moduleName}_all_%d{yyyy-MM-dd}.%i.log.zip
</FileNamePattern>
<!-- 当天的日志大小 超过${log.max.size}时,压缩日志并保存 -->
<timeBasedFileNamingAndTriggeringPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP">
<maxFileSize>${log.max.size}</maxFileSize>
</timeBasedFileNamingAndTriggeringPolicy>
</rollingPolicy>
<!-- 日志输出的文件的格式 -->
<layout class="ch.qos.logback.classic.PatternLayout">
<pattern>%date{yyyy-MM-dd HH:mm:ss.SSS} %-5level [%thread]%logger{56}.%method\(\):%L -%msg%n</pattern>
</layout>
</appender>
<!-- 为某个包下的所有类的指定Appender 这里也可以指定类名称例如:com.aa.bb.ClassName -->
<logger name="com.lin" additivity="false">
<level value="debug" />
<appender-ref ref="stdout" />
<appender-ref ref="file" />
</logger>
<!-- root将级别为“DEBUG”及大于“DEBUG”的日志信息交给已经配置好的名为“Console”的appender处理,“Console”appender将信息打印到Console -->
<root level="debug">
<appender-ref ref="stdout" /> <!-- 标识这个appender将会添加到这个logger -->
<appender-ref ref="file" />
</root>
</configuration>
其中,下面这几个参数 是在pom.xml里配置的,如果你不想在pom.xml里来配置,也可以直接写死就是
<property name="log.root.level" value="${log.root.level}" />
<property name="log.other.level" value="${log.other.level}" />
<property name="log.base" value="${log.base}" />
<property name="log.moduleName" value="${log.moduleName}" />
<property name="log.max.size" value="10kb" />
参数内容如下:
<profiles>
<!-- 开发环境 -->
<profile>
<id>dev</id>
<activation>
<activeByDefault>true</activeByDefault>
</activation>
<!-- 以下配置properties中用到一些变量,如数据库连接参数、日志打印等 -->
<properties>
<!-- DB Resource -->
<jdbc_driverClassName>com.mysql.jdbc.Driver</jdbc_driverClassName>
<jdbc_url>jdbc:mysql://localhost:3306/learning</jdbc_url>
<jdbc_username>root</jdbc_username>
<jdbc_password>christmas258@</jdbc_password>
<log.moduleName>ssm-project</log.moduleName>
<log.base>logs&