springboot对日志支持

1.sprinboot对日志支持
 a.常见的日志框架
     JCL,JUL,jboss-logging,logback,log4j,log4j2,slf4j...
  b.springboot默认选用slf4j,logback;
  c.sprinboot默认配置好了日志,我们直接使用即可;
 日志级别:  
   TRACE<DEBUG<INFO<WARN<ERROR<FATAL<OFF;
     idea:ctrl+shif+n 快速定位类
     默认级别:info(只打印info及以后的日志)
     自定义日志级别:可以在全局配置文件中修改;
      logging.level.主配置类所在包名=warn
    设置日志文件保存的位置:
     loggin.file=springboot.log(相对于项目的根目录)
     loggin.file=d:/springboot.log(绝对路径)
     loggin.path=d:/log/ (将日志放入该文件夹默认文件名为spring.log)
    指定日志显示格式:
    1.日志显示在console中
     logging.pattern.console=%d{yyyy/MM/dd-HH:mm:ss} [%thread] %-5level %logger- %msg%n
       %d日期时间{格式}
       [%thread]线程名
       %-5level 显示日志级别:-5:表示从左显示5个字符宽度
       %logger{50}:设置日志长度超过50部分不要;
       %msg:日志消息
       %n:回车
    2.日志放在文件中
     logging.pattern.file=%d{yyyy/MM/dd-HH:mm} [%thread] %-5level %logger- %msg%n
     日志的具体说明:
     https://docs.spring.io/spring-boot/docs/2.1.3.RELEASE/reference/htmlsingle/#boot-features-logging-format
     默认的日志格式时在对应的日志的jar中相应的xml文件中进行配置的;
     在JavaBean中使用:构建日志对象
      Logger logger=LoggerFactory.getLogger(DemoApplicationTests.class);
      
      springboot整合log4j
1.添加依赖
<dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-log4j</artifactId>
        <version>1.3.8.RELEASE</version>
    </dependency>
2.在resources目录下新建log4j.properties

https://blog.csdn.net/sinat_30185177/article/details/73550377
 ### 设置###
log4j.rootLogger = debug,stdout,D,E
 
### 输出信息到控制抬 ###
log4j.appender.stdout = org.apache.log4j.ConsoleAppender
log4j.appender.stdout.Target = System.out
log4j.appender.stdout.layout = org.apache.log4j.PatternLayout
log4j.appender.stdout.layout.ConversionPattern = [%-5p] %d{yyyy-MM-dd HH:mm:ss,SSS} method:%l%n%m%n
 
### 输出DEBUG 级别以上的日志到=D://logs/log.log  ###
log4j.appender.D = org.apache.log4j.DailyRollingFileAppender
log4j.appender.D.File = D://logs/log.log
log4j.appender.D.Append = true
log4j.appender.D.Threshold = DEBUG 
log4j.appender.D.layout = org.apache.log4j.PatternLayout
log4j.appender.D.layout.ConversionPattern = %-d{yyyy-MM-dd HH:mm:ss}  [ %t:%r ] - [ %p ]  %m%n
 
###  输出ERROR 级别以上的日志到=D://logs/error.log  ###
log4j.appender.E = org.apache.log4j.DailyRollingFileAppender
log4j.appender.E.File =d://logs/error.log 
log4j.appender.E.Append = true
log4j.appender.E.Threshold = ERROR 
log4j.appender.E.layout = org.apache.log4j.PatternLayout
log4j.appender.E.layout = org.apache.log4j.PatternLayout
log4j.appender.E.layout.ConversionPattern = %-d{yyyy-MM-dd HH:mm:ss}  [ %t:%r ] - [ %p ]  %m%n


3.javaBean使用
Logger logger=Logger.getLogger(TestController.class);

4.使用Aop统一管理web请求日志

添加依赖

<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-aop</artifactId>
  </dependency>

//使用Aop统一管理web请求日志
@Aspect
@Component
public class WeblogAspect {
private static Logger logger=Logger.getLogger(WeblogAspect.class);
@Pointcut("execution(public * com.online.controller.*.*(..))")
public void webLog() {
	
}
@Before("webLog()")
public void doBefore(JoinPoint joinPoint) {
	ServletRequestAttributes attributes=(ServletRequestAttributes)RequestContextHolder.getRequestAttributes();
	HttpServletRequest request = attributes.getRequest();
	logger.info("getRequestURL"+request.getRequestURL().toString());
	logger.info("getMethod"+request.getMethod());
	logger.info("getRemoteAddr"+request.getRemoteAddr());
	Enumeration<String> en = request.getParameterNames();
	while (en.hasMoreElements()) {
		String nextElement = en.nextElement();		
		logger.info("name:{"+nextElement+"}"+",value:{"+request.getParameter(nextElement)+"}");
		
	}	
}
@AfterReturning(returning="obj",pointcut="webLog()")
public void doAfterReturning(Object obj){
	logger.info("response:______---------------"+obj);
	
}


     


版权声明:本文为qq_29393273原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。