在log4j中,可以通过配置多个Logger对象来实现写多个日志。
首先,打开log4j的配置文件(通常是log4j.properties或log4j.xml),并添加多个Logger的配置。例如,可以添加两个Logger对象,一个用于写入控制台,另一个用于写入文件:
log4j.rootLogger=INFO, console, file
控制台输出的日志
log4j.appender.console=org.apache.log4j.ConsoleAppender log4j.appender.console.Target=System.out log4j.appender.console.layout=org.apache.log4j.PatternLayout log4j.appender.console.layout.ConversionPattern=%d{yyyy-MM-dd HH:mm:ss} %5p %c{1}:%L - %m%n
文件输出的日志
log4j.appender.file=org.apache.log4j.RollingFileAppender log4j.appender.file.File=/path/to/log/file.log log4j.appender.file.MaxFileSize=5MB log4j.appender.file.MaxBackupIndex=10 log4j.appender.file.layout=org.apache.log4j.PatternLayout log4j.appender.file.layout.ConversionPattern=%d{yyyy-MM-dd HH:mm:ss} %5p %c{1}:%L - %m%n
然后,在Java代码中,可以使用Logger.getLogger方法获取不同的Logger对象,并使用不同的日志级别来写入日志。例如,可以使用以下代码分别写入控制台日志和文件日志:
import org.apache.log4j.Logger;
public class Log4jExample { private static final Logger consoleLogger = Logger.getLogger(“console”); private static final Logger fileLogger = Logger.getLogger(“file”);
public static void main(String[] args) { consoleLogger.info("This is a console log message"); fileLogger.error("This is a file log message"); }
}
通过上述配置和代码,就可以同时写入控制台和文件的日志。需要注意的是,需要在配置文件中分别配置控制台和文件的Appender,并为它们分别指定不同的Logger名称。在Java代码中,只需要通过Logger.getLogger方法获取相应的Logger对象,并使用不同的方法写入日志。