标签:大于 std 文件夹 can value com web项目 调用 test
摘要:本文主要介绍了如何在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>
-
- <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="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>
-
- <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
- <FileNamePattern>${log.base}/archive/${log.moduleName}_all_%d{yyyy-MM-dd}.%i.log.zip
- </FileNamePattern>
-
- <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>
-
-
- <logger name="com.lin" additivity="false">
- <level value="debug" />
- <appender-ref ref="stdout" />
- <appender-ref ref="file" />
- </logger>
-
- <root level="debug">
- <appender-ref ref="stdout" />
- <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>
-
- <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</log.base>
- <log.other.level>DEBUG</log.other.level>
- <log.root.level>DEBUG</log.root.level>
- <log.stdout.ref><![CDATA[<appender-ref ref="stdout" />]]></log.stdout.ref>
- </properties>
- </profile>
- </profiles>
3、如果单独的跑一个spring项目,不带web页面的话,那么这时跑个单元测试就可以打印日志了
看看输出的文件:
二、logback与spingMVC结合使用
其实与spingMVC只需要在上面的工程中,在web.xml里添加如下内容即可。
-
- <context-param>
- <param-name>logbackConfigLocation</param-name>
- <param-value>classpath:logback.xml</param-value>
- </context-param>
- <listener>
- <listener-class>ch.qos.logback.ext.spring.web.LogbackConfigListener</listener-class>
- </listener>
然后本地启动tomcat,把项目加载进来,注意,此时的日志输出路径 不会像上面一样出现在工程所在路径的logs目录下,而会放在eclipse安装目录下,自动新建一个logs目录 下:
而如果将此war包上传到linux下的tomcat的webapp目录后,日志文件会保存在tomcat/bin/logs目录下,记得,这个是web项目和非web项目日志保存路径的不同!
下面这一个是配置比较复杂的,大的工程更多的是以这种方式来配置的,针对不同的包,不同级别的日志来分别打印,如下:
还有另一个网上的找的配置文件,笔者 没有使用过,不过,大家可以参考下来写:
<pattern>里面的转换符说明:
转换符 | 作用 |
c {length } lo {length } logger {length } |
输出日志的logger名,可有一个整形参数,功能是缩短logger名,设置为0表示只输入logger最右边点符号之后的字符串。
Conversion specifier | Logger name | Result |
%logger |
mainPackage.sub.sample.Bar |
mainPackage.sub.sample.Bar |
%logger{0} |
mainPackage.sub.sample.Bar |
Bar |
%logger{5} |
mainPackage.sub.sample.Bar |
m.s.s.Bar |
%logger{10} |
mainPackage.sub.sample.Bar |
m.s.s.Bar |
%logger{15} |
mainPackage.sub.sample.Bar |
m.s.sample.Bar |
%logger{16} |
mainPackage.sub.sample.Bar |
m.sub.sample.Bar |
%logger{26} |
mainPackage.sub.sample.Bar |
mainPackage.sub.sample.Bar |
|
C {length } class {length } |
输出执行记录请求的调用者的全限定名。参数与上面的一样。尽量避免使用,除非执行速度不造成任何问题。 |
contextName cn |
输出上下文名称。 |
d {pattern } date {pattern } |
输出日志的打印日志,模式语法与java.text.SimpleDateFormat 兼容。
Conversion Pattern | Result |
%d |
2006-10-20 14:06:49,812 |
%date |
2006-10-20 14:06:49,812 |
%date{ISO8601} |
2006-10-20 14:06:49,812 |
%date{HH:mm:ss.SSS} |
14:06:49.812 |
%date{dd MMM yyyy ;HH:mm:ss.SSS} |
20 oct. 2006;14:06:49.812 |
|
F / file |
输出执行记录请求的java源文件名。尽量避免使用,除非执行速度不造成任何问题。 |
caller{depth}caller{depth, evaluator-1, ... evaluator-n} |
输出生成日志的调用者的位置信息,整数选项表示输出信息深度。
例如, %caller{2} 输出为:
0 [main] DEBUG - logging statement
Caller+0 at mainPackage.sub.sample.Bar.sampleMethodName(Bar.java:22)
Caller+1 at mainPackage.sub.sample.Bar.createLoggingRequest(Bar.java:17)
例如, %caller{3} 输出为:
16 [main] DEBUG - logging statement
Caller+0 at mainPackage.sub.sample.Bar.sampleMethodName(Bar.java:22)
Caller+1 at mainPackage.sub.sample.Bar.createLoggingRequest(Bar.java:17)
Caller+2 at mainPackage.ConfigTester.main(ConfigTester.java:38)
|
L / line |
输出执行日志请求的行号。尽量避免使用,除非执行速度不造成任何问题。 |
m / msg / message |
输出应用程序提供的信息。
|
M / method |
输出执行日志请求的方法名。尽量避免使用,除非执行速度不造成任何问题。 |
n |
输出平台先关的分行符“\n”或者“\r\n”。 |
p / le / level |
输出日志级别。 |
r / relative |
输出从程序启动到创建日志记录的时间,单位是毫秒 |
t / thread |
输出产生日志的线程名。 |
replace(p ){r, t} |
p 为日志内容,r 是正则表达式,将p 中符合r 的内容替换为t 。
例如, "%replace(%msg){‘\s‘, ‘‘}"
|
参考文章:http://www.360doc.com/content/14/1016/15/8072791_417440479.shtml
http://blog.csdn.net/evankaka/article/details/50637994
logback与Spring、SpringMVC结合使用教程(转)
标签:大于 std 文件夹 can value com web项目 调用 test
原文地址:https://www.cnblogs.com/anyiz/p/10712299.html