如何使用log4j在hadoop中编写登录的用户特定日志

如何使用log4j在hadoop中编写登录的用户特定日志,hadoop,log4j,hadoop2,Hadoop,Log4j,Hadoop2,使用Log4j iam尝试写入登录的用户级日志 假设我使用“X”用户登录到一台计算机,我需要在Log4J属性文件中获取用户名。因此,我可以将日志写入:/Desktop/X/final.log 同样,如果是Y用户,则应写入:/Desktop/Y/final.log 我尝试使用${user},但不起作用 log4j.appender.file=org.apache.log4j.RollingFileAppender log4j.appender.file.file=/Desktop/${user}/

使用Log4j iam尝试写入登录的用户级日志

假设我使用“X”用户登录到一台计算机,我需要在Log4J属性文件中获取用户名。因此,我可以将日志写入:/Desktop/X/final.log
同样,如果是Y用户,则应写入:/Desktop/Y/final.log

我尝试使用${user},但不起作用

log4j.appender.file=org.apache.log4j.RollingFileAppender log4j.appender.file.file=/Desktop/${user}/final.log


感谢您的帮助

一种方法是在使用
log4j
的程序中注入系统属性。例如,如果您正在运行某个java程序,则可以使用
-Duser=
传入
user
属性

更好的是,如果需要,可以参数化整个日志文件名。有一个类似的问题,有详细的答案

log4j.appender.file=org.apache.log4j.RollingFileAppender
log4j.appender.file.File=/Desktop/${user}/final.log