spring 使用logback
需要的包
gradle,版本自选,commons-logging不排除也行,网上有文档说要排除,我这里排不排除都没有关系
compilegroup:'ch.qos.logback',name:'logback-classic',version:'1.1.3'compilegroup:'org.logback-extensions',name:'logback-ext-spring',version:'0.1.2'compilegroup:'org.slf4j',name:'jcl-over-slf4j',version:'1.7.12'configurations{//compile.excludemodule:'commons-logging'}
maven
<dependency><groupId>ch.qos.logback</groupId><artifactId>logback-classic</artifactId><version>1.1.3</version></dependency><dependency><groupId>org.logback-extensions</groupId><artifactId>logback-ext-spring</artifactId><version>0.1.2</version></dependency><dependency><groupId>org.slf4j</groupId><artifactId>jcl-over-slf4j</artifactId><version>1.7.12</version></dependency>
web.xml中增加配置
<context-param><param-name>logbackConfigLocation</param-name><param-value>/WEB-INF/config/logback3.xml</param-value></context-param>
这里的param-value自己定义,我这里是把配置文件放在/WEB-INF/config/目录下,有文档将其放在classpath里,也没差.
logback3.xml里的内容
<?xmlversion="1.0"encoding="UTF-8"?><configuration><timestampkey="bySecond"datePattern="yyyyMMdd"/><appendername="FILE"class="ch.qos.logback.core.FileAppender"><file>${catalina.base}/logs/weblearn/weblearn3-${bySecond}.log</file><encoder><!--必须指定,否则不会往文件输出内容--><pattern>%date%level%thread%10logger%file%line%msg%n</pattern></encoder><append>true</append><prudent>false</prudent></appender><appendername="STDOUT"class="ch.qos.logback.core.ConsoleAppender"><!--encodersareassignedthetypech.qos.logback.classic.encoder.PatternLayoutEncoderbydefault--><encoder><!--<pattern>%-4relative[%thread]%-5level%logger{35}-%msg%n</pattern>--><pattern>%date%level%thread%10logger%file%line%msg%n</pattern></encoder></appender><rootlevel="DEBUG"><appender-refref="FILE"/><appender-refref="STDOUT"/></root></configuration>
这里有很多配置选项,具体的看官方的文档logback配置官方文档
http://logback.qos.ch/manual/appenders.html
我的配置是把日志放在tomcat的日志目录下,C:\apache-tomcat-8.0.32\logs\weblearn\
同时在文件和控制台输出,所以定义了两个<appender></appender>
每天一个日志,
服务器启动后,结果如下
在代码中使用的方法如下
packagecom.example.weblearn3.controller;importjava.io.PrintWriter;importjava.io.StringWriter;importorg.slf4j.Logger;importorg.slf4j.LoggerFactory;importorg.springframework.stereotype.Controller;importorg.springframework.web.bind.annotation.RequestMapping;importorg.springframework.web.bind.annotation.RequestMethod;@Controller@RequestMapping({"/","/homepage","index.html"})publicclassHomeController{privateLoggerlogger=LoggerFactory.getLogger(HomeController.class);@RequestMapping(method=RequestMethod.GET)publicStringhome(){try{inta=1/0;}catch(Exceptione){StringWritersw=newStringWriter();PrintWriterpw=newPrintWriter(sw);e.printStackTrace(pw);logger.error("Main错误:"+sw.toString());}System.out.println("home");return"home";}}
声明:本站所有文章资源内容,如无特殊说明或标注,均为采集网络资源。如若本站内容侵犯了原著者的合法权益,可联系本站删除。