gpt4 book ai didi

java - 每个使用 Log4j 的用户都有不同的日志

转载 作者:搜寻专家 更新时间:2023-10-31 19:42:00 24 4
gpt4 key购买 nike

我有一个网络应用程序,我想为每个用户使用不同的日志,这样我就可以了解用户在系统上所做的事情的“历史记录”。

这是我目前所拥有的:

import java.io.File;
import java.io.IOException;

import org.apache.log4j.DailyRollingFileAppender;
import org.apache.log4j.FileAppender;
import org.apache.log4j.SimpleLayout;
import org.apache.log4j.Logger;

public class LogManager {

public Logger getLog(String username) throws IOException{
SimpleLayout layout = new SimpleLayout();
FileAppender appender = new DailyRollingFileAppender(layout, "users"+File.pathSeparator+username+File.pathSeparator+username, "'.'yyyy-MM");

// configure the appender here, with file location, etc
appender.activateOptions();
Logger logger = Logger.getRootLogger();
logger.addAppender(appender);
return logger;
}

}

问题是,作为一个 web 应用程序,它是多线程的,所以据我所知,我不能一直使用 RootLogger 并根据我正在登录的用户更改附加程序。我想我应该为每个用户创建不同的 Logger,但这样正确吗?

最佳答案

尝试切换到 logback (log4j 的继任者)。它带有 SiftingAppender它可用于根据给定的运行时属性分离(或筛选)日志记录,在您的情况下为“userid”。 documentation包含基于用户 ID 分离日志的示例。

关于java - 每个使用 Log4j 的用户都有不同的日志,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3870326/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com