1.重写方法
import org.apache.log4j.DailyRollingFileAppender;
import org.apache.log4j.Priority;
public class MyAppender extends DailyRollingFileAppender {
@Override
public boolean isAsSevereAsThreshold(Priority priority) {
// 只判断是否相等,而不判断优先级
return this.getThreshold().equals(priority);
}
}
2.配置日志文件
#多目的地、自定义样式
#设置级别和目的地
log4j.rootLogger=debug,appender1,appender2
#输出到控制台
log4j.appender.appender1=org.apache.log4j.ConsoleAppender
#设置输出样式
log4j.appender.appender1.layout=org.apache.log4j.PatternLayout
#自定义样式
# %r 时间 0
# %t 方法名 main
# %p 优先级 DEBUG/INFO/ERROR
# %c 所属类的全名(包括包名)
# %l 发生的位置,在某个类的某行
# %m 输出代码中指定的讯息,如log(message)中的message
# %n 输出一个换行符号
log4j.appender.appender1.layout.ConversionPattern=[%d{yy/MM/dd HH:mm:ss:SSS}][%C-%M] %m%n
#输出到文件 只记录log4j.appender.appender2.Threshold=INFO 只显示INFO级别的日志
log4j.appender.appender2=cn.edu.hpu.common.MyAppender
#输出到文件,显示info、WARN、ERROR、FATAL级别的日志
#log4j.appender.appender2=org.apache.log4j.DailyRollingFileAppender
#显示info级别的日志
log4j.appender.appender2.Threshold=INFO
#追加文本
log4j.appender.appender2.Append=true
#设置文件输出路径
log4j.appender.appender2.File=/data/logs/log4j_demo/Log4JDemo11.log
log4j.appender.appender2.DatePattern='.'yyyy-MM-dd
#设置文件输出样式
log4j.appender.appender2.layout=org.apache.log4j.PatternLayout
log4j.appender.appender2.layout.ConversionPattern=[%p %d{yyyy-MM-dd HH:mm:ss:SSS}]-%m%n
3.测试运行
import org.apache.log4j.Logger;
import org.apache.log4j.PropertyConfigurator;
public class OnlyInfoLogTest {
public static void main(String[] args) {
configure();
Logger logger=Logger.getLogger(OnlyInfoLogTest.class.getName());
// System.out.println("This is println message.");
// 记录debug级别的信息
logger.debug("This is debug message10.");
// 记录info级别的信息
logger.info("This is info message10.");
// 记录error级别的信息
logger.error("This is error message10.");
}
public static void configure()
{
//绝对路径
PropertyConfigurator.configure("src/main/resources/OnlyInfoLog4j.properties");
}
}