相关疑难解决方法(0)

使用log4j进行条件记录

我工作的Web应用程序偶尔会为某些用户开发数据完整性问题.我想打开跟踪级别日志记录,但由于我们每秒处理100个请求跟踪日志记录,因此每个请求都是不可能的.

有没有办法让log4j能够有条件地记录?换句话说,我希望只有在特定用户发出请求时才能获取跟踪日志.由于我事先不知道哪些用户会受到影响,我不能简单地暂时硬编码用户名.

编辑:

我想我需要更清楚一些.我可以轻松地为日志语句添加条件.例如

Logger logger = Logger.getLogger("foo");
String usernameFilter = "piglet";
String username = request.getParameter("username");
logger.setLevel(usernameFilter.equals(username) ? Level.TRACE : Level.INFO);
if (logger.isTraceEnabled()) {
   logger.trace("blah blah blah");
}
Run Code Online (Sandbox Code Playgroud)

困难在于动态地改变设置日志级别的条件.换句话说,在上面的示例中,我如何设置usernameFilter的值,而不是硬编码.

java log4j

20
推荐指数
2
解决办法
3万
查看次数

你有没有看过一个能在Log4j中根据NDC分离文件的appender?

我们只有极少数的客户(少于50个),我们希望每个客户都有自己独立的日志文件,其所有服务器端日志信息都会记录在其中.我知道您可以使用NDC和过滤器使用Log4j中的标准appender将日志语句定向到不同的文件,但这需要更多的设置(为所有现有客户创建记录器)并且它不会自动适应添加的新客户进入系统.

你有没有见过一个appender会根据Log4j NDC值将日志语句拆分成单独的文件?我想我可以建立一个新的appender来做它但我不能说如果我能得到一些已经构建好的东西我想要.

java logging log4j

3
推荐指数
1
解决办法
3789
查看次数

标签 统计

java ×2

log4j ×2

logging ×1