admin管理员组

文章数量:1532241

2024年2月13日发(作者:)

在slf4j日志文件中加入ip等额外自定义信息的实现

原理:

slf4j(Simple Logging Facade for Java)使用了log4j的规则,在xml配置上基本是与log4j一致的。

通过中创建过滤器filter,在filter指向的类中用slf4j提供的MDC来在过滤链中put入key数据,配合ties中给日志设置的ConversionPattern格式中加入 %X{key} ,即可在日志数据中加入key所对应的value。

过滤器的具体代码:

package ;

import ption;

import ;

import Chain;

import Config;

import tException;

import tRequest;

import tResponse;

import rvletRequest;

import rvletResponse;

import ;

public class Slf4jMdcFilter implements Filter {

public void doFilter(ServletRequest request, ServletResponse response, FilterChain

chain) throws IOException, ServletException {

// 获得客户的网络地址

String ip = oteAddr();

// 把ip地址放入MDC中. 那么在 log4j layout pattern 中通过使用 %X{ip},就可在每条日志之中增加ip地址的信息

("ip", ip);

//继续处理其他的filter链

er(request, response);

// 从MDC的堆栈中删除网络地址

("ip");

}

protected void doFilterInternal(HttpServletRequest request, HttpServletResponse

response, FilterChain filterChain) throws ServletException, IOException {

// TODO Auto-generated method stub

}

@Override

public void init(FilterConfig filterConfig) throws ServletException {

// TODO Auto-generated method stub

}

@Override

public void destroy() {

// TODO Auto-generated method stub

}

}

的具体代码:

slf4jMdcFilter

4jMdcFilter

slf4jMdcFilter

/*

ties的具体代码:

sionPattern=[%d] %X{ip} [%t] %-5p [%c]

- %m%n

本文标签: 日志加入网络地址过滤器配置