如何使用Java代码编写以下配置?
log4j.com.saurabh.util.LogUtil=DEBUG, myAppender
我正在处理使用log4j 1.x的遗留代码,我没有选择升级log4j版本。
基本上,我的要求是进行会话级日志记录。对于每个用户会话,应创建单独的日志文件。
RollingFileAppender userSessionAppender = null;
try {
String logFile = new StringBuffer(CATALINA_HOME)
.append(File.separator)
.append(LOG_DIR)
.append(File.separator)
.append(InetAddress.getLocalHost().getHostName())
.append("_")
.append(userName)
.append("_")
.append((new SimpleDateFormat("yyyy-MM-dd.hh-mm-ss")).format(new Date()).toString())
.append(LOG_FILE_EXTN)
.toString();
userSessionAppender = new RollingFileAppender(new PatternLayout(pattern), logFile);
userSessionAppender.setName(sessionId);
userSessionAppender.setThreshold(Level.DEBUG);
// add a filter so we can ignore any logs from other user sessions
userSessionAppender.addFilter(new SessionIdFilter(sessionId));
rootLogger.addAppender(userSessionAppender);
Logger.getLogger(sessionId).addAppender(userSessionAppender);
Logger.getLogger(sessionId).setLevel(Level.DEBUG);
Logger.getLogger(sessionId).setAdditivity(false);
} catch (Exception e) {
LOG.error("createLogger() : Exception while creating appender for user: " + userName, e);
}
并实际记录消息:
if (isLoggingEnabled(userName)) {
Logger.getLogger(sessionId).debug(message);
}
使用此代码,我可以创建单独的文件并登录到该文件,但是,来自其他类的日志语句也会进入同一个文件。
我想限制特定类/包的日志记录。 我认为下面的配置行有助于此:
log4j.com.saurabh.util.LogUtil=DEBUG, myAppender
我需要以编程方式实现上面的配置。
提前致谢。