规范一
第一步:
在过滤器中把用户信息放到MDC中,
@Component
@WebFilter(filterName="testFilter",urlPatterns="/**")
public class TestFilter implements Filter{
@Override
public void init(FilterConfig filterConfig) throws ServletException {
}
@Override
public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain)
throws IOException, ServletException {
MDC.put("user", "张三");
chain.doFilter(request, response);
MDC.remove("user");
}
@Override
public void destroy() {
}
}
第二步:
在写日志文件时
加上%X{user},user对应MDC的key值
<appender name="console" class="ch.qos.logback.core.ConsoleAppender">
<encoder>
<!--<pattern>%d %p (%file:%line\)- %m%n</pattern>-->
<!--格式化输出:%d:表示日期 %thread:表示线程名 %-5level:级别从左显示5个字符宽度 %msg:日志消息 %n:是换行符-->
<pattern>控制台-%d{yyyy-MM-dd HH:mm:ss} [%thread] %-5level: %X{user} %logger - %msg%n</pattern>
<charset>UTF-8</charset>
</encoder>
</appender>
规范二
在删除、修改的时候必须打印日志
@Override
public int deleteSysUserById(String id) {
logger.info("根据用户id:{} 删除用户信息", id);
// 删除操作
int count = 2;
logger.info("删除用户信息 success,id:{}, result:{}", id, count > 0 ? true : false);
return count;
}
规范三
分支条件必须打印日志
@Override
public int count(int status) {
logger.info("当前状态status:{}",status);
if(0 == status) {
// 操作查询用户
} else {
// 操作删除
}
return 0;
}
规则四
数据量大必须打印数据量
规则五
错误日志必须
try {
******
}catch(Exception e) {
login.error("添加用户id{}异常",id,e);
}