SpringBoot入门系列:第三篇 日志输出

来源:互联网 发布:虚拟打印机软件 编辑:程序博客网 时间:2024/06/06 12:51

Java程序,日志输出,我认为是第一位的,把它的应用拿到这里。

spring-Boot对日志的处理,和我们往常的处理完全可以一致,通过logback.xml进行处理,即使有更先进的东西,我们也不用去管它。

这里,为了简便,我们任然使用前一篇的工程spring-boot-sample-data

第一步,在src/main/resources中增加logback.xml文件,文件内容为(这里仅最简单的,根据工程情况,进行相应的配置):

[html] view plain copy 在CODE上查看代码片派生到我的代码片
  1. <pre name="code" class="html"><configuration>    
  2.     <!-- %m输出的信息,%p日志级别,%t线程名,%d日期,%c类的全名,,,, -->    
  3.     <appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender">    
  4.         <encoder>    
  5.             <pattern>%d %p (%file:%line\)- %m%n</pattern>  
  6.             <charset>GBK</charset>   
  7.         </encoder>    
  8.     </appender>    
  9.     <appender name="baselog"    
  10.         class="ch.qos.logback.core.rolling.RollingFileAppender">    
  11.         <File>log/base.log</File>    
  12.         <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">    
  13.             <fileNamePattern>log/base.log.%d.%i</fileNamePattern>    
  14.             <timeBasedFileNamingAndTriggeringPolicy  class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP">    
  15.                 <!-- or whenever the file size reaches 64 MB -->    
  16.                 <maxFileSize>64 MB</maxFileSize>    
  17.             </timeBasedFileNamingAndTriggeringPolicy>    
  18.         </rollingPolicy>    
  19.         <encoder>    
  20.             <pattern>    
  21.                 %d %p (%file:%line\)- %m%n  
  22.             </pattern>    
  23.             <charset>UTF-8</charset> <!-- 此处设置字符集 -->   
  24.         </encoder>    
  25.     </appender>    
  26.     <root level="info">    
  27.         <appender-ref ref="STDOUT" />    
  28.     </root>    
  29.     <logger name="com.example" level="DEBUG">    
  30.         <appender-ref ref="baselog" />    
  31.     </logger>    
  32. </configuration>  

注:1、控制台和日志文件的字符集

       2、日志文件的存放位置,须要遵守Linux的命名规则

第二步,改造HelloController文件,改造结果如下

[java] view plain copy 在CODE上查看代码片派生到我的代码片
  1. package com.example;  
  2.   
  3. import org.slf4j.Logger;  
  4. import org.slf4j.LoggerFactory;  
  5. import org.springframework.web.bind.annotation.PathVariable;  
  6. import org.springframework.web.bind.annotation.RequestMapping;  
  7. import org.springframework.web.bind.annotation.RestController;  
  8.   
  9. @RestController  
  10. public class HelloController {  
  11.   
  12.     protected static Logger logger=LoggerFactory.getLogger(HelloController.class);  
  13.       
  14.     @RequestMapping("/")  
  15.     public String helloworld(){  
  16.         logger.debug("访问hello");  
  17.         return "Hello world!";  
  18.     }  
  19.       
  20.     @RequestMapping("/hello/{name}")  
  21.     public String helloName(@PathVariable String name){  
  22.         logger.debug("访问helloName,Name={}",name);  
  23.         return "Hello "+name;  
  24.     }  
  25. }  
注:在添加引用时,日志的包一定是org.slf4j.Logger、org.slf4j.LoggerFactory

第三步、测试

1、运行程序

2、在浏览器中依次输入

http://localhost:8080/

http://localhost:8080/hello/上帝

3、在工程所在的根目录找到log文件夹,进去,再打开base.log,入下图


注:文件夹和日志文件的名称,都是在配置文件logback.xml中设置的


通过这个实例,我们完全用过去的技术处理日志,暂时不用去管别的,直接使曾经的技术。
0 0