日志分级
大约 3 分钟
日志分级
如果想要对方法的运行状态进行统一的日志收集,请参见日志收集
这里主要是对日志的级别进行分级输出
maven依赖
这里采用Apache Log4j » 1.2.17进行日志收集,也可以选择其他的log4j依赖版本
<dependency>
<groupId>log4j</groupId>
<artifactId>log4j</artifactId>
<version>1.2.17</version>
</dependency>
日志级别
- 低级别日志文件会保存高级别日志文件的所有日志信息,如:
- ERROR 级别日志文件异常日志,
- WARN 级别日志文件保存异常+警告日志
- INFO 级别日志文件保存异常+警告+ INFO 级别日志(依次类推)
log4j定义了8个级别的log优先级从高到低依次为:OFF、FATAL、ERROR、WARN、INFO、DEBUG、TRACE、 ALL。
log4j.rootLogger=INFO, CONSOLE, ERROR, WARN, INFO, DEBUG, ALL
提示
第一个参数INFO 是控制台的日志输出级别(表示输出INFO 级别以下所有日志,可配置),例:
log4j.rootLogger=INFO, CONSOLE, ERROR, WARN, INFO
控制台输出
#输出信息到控制台CONSOLE
log4j.appender.CONSOLE = org.apache.log4j.ConsoleAppender
log4j.appender.CONSOLE.Target = System.out
log4j.appender.CONSOLE.layout = org.apache.log4j.PatternLayout
log4j.appender.CONSOLE.layout.ConversionPattern = %d{yyyy-MM-dd HH:mm:ss,SSS} [%t] [%c] [%p] - {%m%n}
文件输出
#输出INFO级别以上的内容到info.log中
log4j.logger.INFO=INFO
log4j.appender.INFO = org.apache.log4j.DailyRollingFileAppender
log4j.appender.INFO.File = logs/info/info.log
log4j.appender.INFO.DatePattern ='.'yyyy-MM-dd
log4j.appender.INFO.Threshold = INFO
log4j.appender.INFO.Append = true
log4j.appender.INFO.layout = org.apache.log4j.PatternLayout
log4j.appender.INFO.layout.ConversionPattern = %d{yyyy-MM-dd HH:mm:ss,SSS} [%t] [%c] [%p] - %m%n
log4j.properties
通过log4j.appender.WARN.File
参数指定日志输出文件的位置,可以做到日志分级输出
log4j.rootLogger=INFO, CONSOLE, ERROR, WARN, INFO
#-----------------------------------------------------------------------------------------------------
#输出信息到控制台CONSOLE
log4j.appender.CONSOLE = org.apache.log4j.ConsoleAppender
log4j.appender.CONSOLE.Target = System.out
log4j.appender.CONSOLE.layout = org.apache.log4j.PatternLayout
log4j.appender.CONSOLE.layout.ConversionPattern = %d{yyyy-MM-dd HH:mm:ss,SSS} [%t] [%c] [%p] - {%m%n}
#-----------------------------------------------------------------------------------------------------
#输出ERROR 级别以上的日志到error.log
log4j.logger.ERROR=ERROR
log4j.appender.ERROR = org.apache.log4j.DailyRollingFileAppender
log4j.appender.ERROR.File =logs/error/error.log
log4j.appender.ERROR.DatePattern ='.'yyyy-MM-dd
log4j.appender.ERROR.Threshold = ERROR
log4j.appender.ERROR.Append = true
log4j.appender.ERROR.layout = org.apache.log4j.PatternLayout
log4j.appender.ERROR.layout.ConversionPattern = %d{yyyy-MM-dd HH:mm:ss,SSS} [%t] [%c] [%p] - %m%n
#-----------------------------------------------------------------------------------------------------
#输出WARN 级别以上的日志到warn.log
log4j.logger.WARN=WARN
log4j.appender.WARN = org.apache.log4j.DailyRollingFileAppender
log4j.appender.WARN.File =logs/warn/warn.log
log4j.appender.WARN.DatePattern ='.'yyyy-MM-dd
log4j.appender.WARN.Threshold = WARN
log4j.appender.WARN.Append = true
log4j.appender.WARN.layout = org.apache.log4j.PatternLayout
log4j.appender.WARN.layout.ConversionPattern = %d{yyyy-MM-dd HH:mm:ss,SSS} [%t] [%c] [%p] - %m%n
#-----------------------------------------------------------------------------------------------------
#输出INFO级别以上的内容到info.log中
log4j.logger.INFO=INFO
log4j.appender.INFO = org.apache.log4j.DailyRollingFileAppender
log4j.appender.INFO.File = logs/info/info.log
log4j.appender.INFO.DatePattern ='.'yyyy-MM-dd
log4j.appender.INFO.Threshold = INFO
log4j.appender.INFO.Append = true
log4j.appender.INFO.layout = org.apache.log4j.PatternLayout
log4j.appender.INFO.layout.ConversionPattern = %d{yyyy-MM-dd HH:mm:ss,SSS} [%t] [%c] [%p] - %m%n
#-----------------------------------------------------------------------------------------------------
#输出DEBUG 级别以上的日志到debugger.log
#log4j.logger.DEBUG=DEBUG
#log4j.appender.DEBUG = org.apache.log4j.DailyRollingFileAppender
#log4j.appender.DEBUG.File = logs/debugger/debugger.log
#log4j.appender.DEBUG.DatePattern ='.'yyyy-MM-dd
#log4j.appender.DEBUG.Threshold = DEBUG
#log4j.appender.DEBUG.Append = true
#log4j.appender.DEBUG.layout = org.apache.log4j.PatternLayout
#log4j.appender.DEBUG.layout.ConversionPattern = %d{yyyy-MM-dd HH:mm:ss,SSS} [%t] [%c] [%p] - %m%n
##-----------------------------------------------------------------------------------------------------
##输出ALL级别的日志到all.log
#log4j.logger.ALL=ALL
#log4j.appender.ALL = org.apache.log4j.DailyRollingFileAppender
#log4j.appender.ALL.File = logs/all/all.log
#log4j.appender.ALL.DatePattern ='.'yyyy-MM-dd
#log4j.appender.ALL.Threshold = ALL
#log4j.appender.ALL.Append = true
#log4j.appender.ALL.layout = org.apache.log4j.PatternLayout
#log4j.appender.ALL.layout.ConversionPattern = %-d{yyyy-MM-dd HH:mm:ss} [ %t:%r ] - [ %p ] %m%n
使用方法
将log4j.properties文件,已配置文件的形式保存在Spring Boot项目的根目录下,也就是src/main/resources
目录下
在需要使用log4j的类上添加@Log4j即可
@Log4j
@Aspect
@Component
public class SysLogAspect {
@Pointcut("@annotation(top.jingxc.server.aop.OperationLogger)")
public void controllerAspect() {
}
/**
* 前置通知
*
* @param joinPoint
* @throws Throwable
*/
@Before("controllerAspect()")
public void doBefore(JoinPoint joinPoint) throws Throwable {
Map<String, Object> param = new HashMap<>();
String classType = joinPoint.getTarget().getClass().getName();
Class<?> clazz = Class.forName(classType);
String clazzName = clazz.getName();
param.put("clazzName", clazzName);
String methodName = joinPoint.getSignature().getName();
param.put("methodName", methodName);
String[] paramNames = getFieldsName(this.getClass(), clazzName, methodName);
Object[] args = joinPoint.getArgs();
param.put("args", args);
param.put("paramNames", paramNames);
log.info("******进入方法*********\n" + JSON.toJSONString(param)
+ "\n***************************************************************************************");
param = null;
}
...
}
- 本文作者: 景兴春
- 本文链接: https://www.jingxc.top/spring/logger-level.html
- 版权声明: 本博客所有文章除特别声明外,均采用 Apache License 2.0 许可协议。转载请注明出处!