log4j定义了8个级别的log(除去OFF和ALL,可以说分为6个级别), 优先级从高到低依次为:
OFF、FATAL、ERROR、WARN、INFO、DEBUG、TRACE、 ALL。
主文件:
package fuxi_log.log;
import org.apache.log4j.Logger;
public class LogInfo {
static Logger log = Logger.getLogger(LogInfo.class);
public static void main(String[] args) {
sum(1,3);
}
public static void sum(int num1,int num2) {
log.info("当前用户调用了sum方法!");
log.debug("用户传入的参数 num1 : "+num1 + ",num2 : "+ num2);
int sum = num1+num2;
log.debug("用户当前结果 : "+sum);
}
}
这是配置信息(这个[ log4j.properties ]文件里面的信息主要是设置输出日志的方式,比如字体的颜色,输出的格式,输出的文件类型,输出的等级):
log4j.rootLogger=debug,stdout
##配置控制台的输出信息
##指定日志的输出类
log4j.appender.stdout = org.apache.log4j.ConsoleAppender
##配置控制台的输出方式 .out 黑色 .err 红色
log4j.appender.stdout.Target = System.err
##控制显示的级别,下面这句话就是只要是DEBUG或者以上的等级都可以显示出来
log4j.appender.stdout.Threshold=DEBUG
##指定日志的输出样式处理类
log4j.appender.stdout.layout = org.apache.log4j.PatternLayout
log4j.appender.stdout.layout.ConversionPattern = [%-5p] %d{yyyy-MM-dd HH:mm:ss,SSS} method:%l%n%m%n
控制台显示:
[INFO ] 2019-04-15 13:56:31,056 method:fuxi_log.log.LogInfo.sum(LogInfo.java:22)
当前用户调用了sum方法!
[DEBUG] 2019-04-15 13:56:31,058 method:fuxi_log.log.LogInfo.sum(LogInfo.java:23)
用户传入的参数 num1 : 1,num2 : 3
[DEBUG] 2019-04-15 13:56:31,059 method:fuxi_log.log.LogInfo.sum(LogInfo.java:25)
用户当前结果 : 4
可以显示在文件里:
只需要在[ log4j.properties ]文件里添加:
##指定日志的输出目的地
log4j.appender.file=org.apache.log4j.FileAppender
## 指定日志的输出位置----->log文件夹下面的info.log
log4j.appender.file.File=log/info.log
log4j.appender.file.layout = org.apache.log4j.PatternLayout
log4j.appender.file.layout.ConversionPattern = [%-5p] %d{yyyy-MM-dd HH:mm:ss,SSS} method:%l%n%m%n
找到log文件夹下面的info.log,打开:
[INFO ] 2019-04-15 14:07:43,751 method:fuxi_log.log.LogInfo.sum(LogInfo.java:21)
当前用户调用了sum方法!
[DEBUG] 2019-04-15 14:07:43,754 method:fuxi_log.log.LogInfo.sum(LogInfo.java:22)
用户传入的参数 num1 : 1,num2 : 3
[DEBUG] 2019-04-15 14:07:43,754 method:fuxi_log.log.LogInfo.sum(LogInfo.java:24)
用户当前结果 : 4