我想使用Logback TurboFilter来修改记录消息的内容。具体来说,我想使用Spring Security将登录用户的用户名添加到消息中(这样,我可以在日志上使用简单的grep来查找引用单个登录用户的日志消息)。
看起来自定义TurboFilter是可行的方法,但文档对于我想要做的事情有点不清楚。
这是我想要做的事情的骨架:
public class LoggingTurboFilter extends TurboFilter {
@Override
public FilterReply decide(Marker marker, Logger logger, Level level,
String format, Object[] params, Throwable t) {
final String userId = SecurityContextHolder.getContext().getAuthentication().getName();
// get message
final String output = String.format("[%s] %s", userid, message); // or just use +
// ?
return FilterReply.NEUTRAL;
}
}
这样,应用程序日志中的日志语句如下所示:
[smithjohn] entered methodName()
有人可以帮忙吗?