要指示log4j将不同的日志级别输出到不同的appender,您需要在log4j配置文件中定义appender和logger。以下是一个简单的示例,说明如何实现这一目标:
src/main/resources
目录下创建一个名为log4j.properties
的文件。log4j.properties
文件中,定义不同的appender,例如:log4j.appender.consoleAppender=org.apache.log4j.ConsoleAppender
log4j.appender.consoleAppender.layout=org.apache.log4j.PatternLayout
log4j.appender.consoleAppender.layout.ConversionPattern=%d{yyyy-MM-dd HH:mm:ss} %-5p %c{1}:%L - %m%n
log4j.appender.fileAppender=org.apache.log4j.RollingFileAppender
log4j.appender.fileAppender.File=application.log
log4j.appender.fileAppender.MaxBackupIndex=10
log4j.appender.fileAppender.MaxFileSize=10MB
log4j.appender.fileAppender.layout=org.apache.log4j.PatternLayout
log4j.appender.fileAppender.layout.ConversionPattern=%d{yyyy-MM-dd HH:mm:ss} %-5p %c{1}:%L - %m%n
这里我们定义了两个appender:consoleAppender(控制台)和fileAppender(文件)。
log4j.logger.com.example=INFO, consoleAppender, fileAppender
log4j.logger.com.example.debug=DEBUG, consoleAppender, fileAppender
log4j.logger.com.example.error=ERROR, consoleAppender, fileAppender
这里我们定义了三个logger:com.example(INFO级别),com.example.debug(DEBUG级别)和com.example.error(ERROR级别)。它们都将使用consoleAppender和fileAppender。
import org.apache.log4j.Logger;
public class LogExample {
private static final Logger logger = Logger.getLogger(LogExample.class);
private static final Logger debugLogger = Logger.getLogger("com.example.debug");
private static final Logger errorLogger = Logger.getLogger("com.example.error");
public static void main(String[] args) {
logger.info("这是INFO级别的日志");
debugLogger.debug("这是DEBUG级别的日志");
errorLogger.error("这是ERROR级别的日志");
}
}
通过这种方式,您可以根据不同的日志级别将日志输出到不同的appender。在这个示例中,INFO级别的日志将同时输出到控制台和文件,而DEBUG和ERROR级别的日志仅输出到控制台和文件。
领取专属 10元无门槛券
手把手带您无忧上云