在log4j中,可以使用MDC(Mapped Diagnostic Context)来实现按用户输出日志文件。MDC是一个线程级的变量,可以用于存储和访问线程的上下文信息。
以下是按用户输出日志文件的步骤:
<appender name="userFileAppender" class="org.apache.log4j.RollingFileAppender"> <param name="File" value="logs/user.log" /> <!-- 其他配置参数 --> </appender> <logger name="com.example"> <level value="DEBUG" /> <appender-ref ref="userFileAppender" /> </logger> import org.apache.log4j.Logger; import org.apache.log4j.MDC; public class ExampleClass { private static final Logger logger = Logger.getLogger(ExampleClass.class); public void doSomething(String user) { MDC.put("user", user); logger.debug("User action"); // 其他业务逻辑 MDC.remove("user"); } } <layout class="org.apache.log4j.PatternLayout"> <param name="ConversionPattern" value="%d [%t] %X{user} %p %c - %m%n" /> </layout> 这样,当调用doSomething方法时,会将当前用户信息存储到MDC中,然后在日志输出时,会将用户信息输出到日志文件中。