文章目录
  1. 1. log4j
    1. 1.1. Eclipse的log4j.properties配置
    2. 1.2. 详细配置详解

log4j

Eclipse的log4j.properties配置

rootCategory以前的配置,不推荐使用

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21

# Set root category priority to INFO and its only appender to CONSOLE.
#只打印到控制台,并设置日志级别
# log4j.rootCategory=DEBUG, CONSOLE
#打印到控制台,日志文件,并设置日志级别为DEBUG
log4j.rootCategory=DEBUG, CONSOLE, LOGFILE
# CONSOLE is set to be a ConsoleAppender using a PatternLayout.
#控制台的输出格式
log4j.appender.CONSOLE=org.apache.log4j.ConsoleAppender
log4j.appender.CONSOLE.layout=org.apache.log4j.PatternLayout
#指定输出的信息格式 %m:message,%n:换行,%c:class,追踪产生日志的类
#%l,包名类名方法名,第几行出现问题,
log4j.appender.CONSOLE.layout.ConversionPattern=- %m %c %l
%d{yyyy-MM-dd HH:mm:ss}%n
# LOGFILE is set to be a File appender using a PatternLayout.
#日志文件的输出格式
log4j.appender.LOGFILE=org.apache.log4j.FileAppender
log4j.appender.LOGFILE.File=d:/test.log
log4j.appender.LOGFILE.Append=true
log4j.appender.LOGFILE.layout=org.apache.log4j.PatternLayout
log4j.appender.LOGFILE.layout.ConversionPattern=- %m %l%n

详细配置详解

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
#配置根日志优先级,及输出位置
#语法:log4j.rootLogger = [debug],apppenderName1,appenderName2...
log4j.rootLogger = debug,stdout,D

#上面定义了两个输出位置名:stdout与D,现分别配置:
#配置stdout为调试窗口输出:
log4j.appender.stdout = org.apache.log4j.ConsoleAppender
log4j.appender.stdout.Target=System.out
#指定了一个模式表达式的布局
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
#说明:
#[%-5p]:%p设置输出日志优先级,'-'表示左对齐,5表示日志优先级所占字符个数的宽度,取5是为了保持

一致。如:[DEBUG]
#%d{yyyy-MM-dd HH:mm:ss,SSS},指定了打印日志时间与时间格式,SSS表示?
#%l: 输出日志事件的发生位置,见第四部分。%n,输出换行符。%m,输出日志事件发生的方法名。

#配置D为输出日志到文件:
log4j.appender.D=org.apache.log4j.FileAppender
log4j.appender.D.File=D:\\Program_software\\Apache7_0_75\\webapps\\testLog.log
log4j.appender.D.layout=org.apache.log4j.PatternLayout
log4j.appender.D.layout.ConversionPattern=[%-5p] %d{yyyy-MM-dd HH:mm:ss,SSS} method:%l%n%m%n

###################################################################
#———————————配置详细说明,共四部分——————————#

#一、配置log4j.rootLogger
#语法:log4j.rootLogger = [debug],apppenderName1,appenderName2...
#如:log4j.rootLogger = debug,stdout

#二、配置Appeder——输出位置
#语法:log4j.appender.appenderName = fully.qualified.name.of.appender.class
#完全合法的appenderName 有几类选择

#1、控制台:org.apache.log4j.ConsoleAppender
#对应选项:
#Threshold=WARN:指定日志消息的输出最低层次
#ImmediateFlush=true:默认日志立即打印
#Target=System.err:默认情况下使用System.out 输出控制台

#2、文件:org.apache.log4j.FileAppender
#对应选项:
#Threshold=WARN:指定日志消息输出最低层次
#ImmediateFlush=true:默认日志立即打印
#File=mylog.txt:指定输出路径,可以是任何路径
#Append=false:默认值是true,为false则覆盖

#3、周期产生日志文件:org.apache.log4j.DailyRollingFileAppender
#对应选项:
#Threshold=WARN:指定日志消息输出最低层次
#ImmediateFlush=true:默认日志立即打印
#File=a.log:指定消息输出到a.log文件,默认是从web服务器的根路径开始
#Append=false:默认为true
#DatePattern='.'yyyy-ww:每周滚动一次文件,即每周产生一个新的文件。
#也可指定周期:
#'.'yyyy-MM:每月
#'.'yyyy-ww:每周
#'.'yyyy-MM-dd:每天
#'.'yyyy-MM-dd-a:每天两次
#'.'yyyy-MM-dd-HH:每小时
#'.'yyyy-MM-dd-HH-mm:每分钟

#4、指定文件尺寸大小产生日志文件:org.apache.log4j.RollingFileAppender
#对应选项:
#Threshold=WARN:指定日志消息输出最低层次
#ImmediateFlush=true:默认日志立即打印
#File=a.log:指定日志文件
#Append=false:默认为true
#MaxFileSize=100KB:单位可以是KB|MB|GB,日志文件达到最大时,将会自动滚动,即将原来的内容移到

mylog.log.1文件
#MaxBackupIndex=2:指定可以产生滚动文件的最大数

#5、将日志以流格式发送到任意指定的地方:org.apache.log4j.WriterAppender
#例如:
#log4j.appender.R=org.apache.log4j.DailyRollingFileAppender
#log4j.appender.R.File=D:\\eclipsespace\\testSSH\\WebContent\\WEB-INF\\testlog.log

#三、配置日志信息的格式布局(layout)

#layout负责格式化Appender 的输出
#语法:
#log4j.appender.appenderName.layout=fully.qualified.name.of.layout.class

#有效的layout类名字有以下几种:
#1、org.apache.log4j.HTMLLayout(以HTML表格形式布局)
#该选项有以下几种:
#LocationInfo=true:默认值是false,输出java文件名称和行号
#Title=my app file: 默认值是 Log4J Log Messages.

#2、org.apache.log4j.PatternLayout(可以灵活地指定布局模式)
#该选项有以下几种:
#ConversionPattern=%m%n :指定怎样格式化指定的消息
#其中%m%n等符号所代表的含义如下: (有问题,暂不管)
#-X号: X信息输出时左对齐;
#%p: 输出日志信息优先级,即DEBUG,INFO,WARN,ERROR,FATAL,
#%d: 输出日志时间点的日期或时间,默认格式为ISO8601,也可以在其后指定格式,比如:%d{yyy MMM dd

HH:mm:ss,SSS},输出类似:2002年10月18日 22:10:28,921
#%r: 输出自应用启动到输出该log信息耗费的毫秒数
#%c: 输出日志信息所属的类目,通常就是所在类的全名
#%t: 输出产生该日志事件的线程名
#%l: 输出日志事件的发生位置,相当于%C.%M(%F:%L)的组合,包括类目名、发生的线程,以及在代码中的行

数。举例:Testlog4.main(TestLog4.java:10)
#%x: 输出和当前线程相关联的NDC(嵌套诊断环境),尤其用到像java servlets这样的多客户多线程的应用中


#%%: 输出一个"%"字符
#%F: 输出日志消息产生时所在的文件名称
#%L: 输出代码中的行号
#%m: 输出代码中指定的消息,产生的日志具体信息
#%n: 输出一个回车换行符,Windows平台为"\r\n",Unix平台为"\n"输出日志信息换行

#可以在%与模式字符之间加上修饰符来控制其最小宽度、最大宽度、和文本的对齐方式。如:
#%20c:指定输出category的名称,最小的宽度是20,如果category的名称小于20的话,默认的情况下右对

齐。
#%-20c:指定输出category的名称,最小的宽度是20,如果category的名称小于20的话,"-"号指定左对齐。

#%.30c:指定输出category的名称,最大的宽度是30,如果category的名称大于30的话,就会将左边多出的

字符截掉,但小于30的话也不会有空格。
#%20.30c:如果category的名称小于20就补空格,并且右对齐,如果其名称长于30字符,就从左边交远销出

的字符截掉。

# 如:%-4r %-5p %d{yyyy-MM-dd HH:mm:ssS} %c %m%n [TEST] %p [%t] %C.%M(%L) | %m%n

#3、org.apache.log4j.SimpleLayout(包含日志信息的级别和信息字符串)
#4、org.apache.log4j.TTCCLayout(包含日志产生的时间、线程、类别等等信息)

#四、其他

#指定包名下的日志级别
#语法:log4j.logger.包名=日志级别
#如:
#log4j.logger.com.neusoft =DEBUG
#指定com.neusoft包下的所有类的等级为DEBUG。

#log4j.logger.com.opensymphony.oscache=ERROR
#log4j.logger.net.sf.navigator=ERROR
#这两句是把这两个包下出现的错误的等级设为ERROR,如果项目中没有配置EHCache,则不需要这两句。

#log4j.logger.org.apache.commons=ERROR
#log4j.logger.org.apache.struts=WARN

## #这两句是struts的包。
作者:Liekkas_BX
来源:CSDN
原文:https://blog.csdn.net/qq_19865749/article/details/70306971
版权声明:本文为博主原创文章,转载请附上博文链接!
文章目录
  1. 1. log4j
    1. 1.1. Eclipse的log4j.properties配置
    2. 1.2. 详细配置详解