Log4j的作用和级别:
什么是日志:
日志是系统运行过程中的后台输出信息,方便程序员进行系统运行的管控以及Bug的查找.
什么是log4j?
log4j是一个日志输出的插件,专门用来进行日志的管理的.
传统方式获取日志:
问题:
1.日志信息无法保存
2.无法显示完整的日志信息
3.日志的显示没有级别所有日志混杂在一起显示(无法进行日志的筛选)
4.日志显示格式不友好
解决:使用Log4j.
使用log4j进行日志管理:
特点:
1日志可以单独保存在文件中
2可以获取完整的日志信息
3可以进行日志显示的筛选
4格式友好
log4j的日志级别:
FATAL :致命的错误
ERROR :异常错误
WARN :警告
INFO :信息(方法级别)
DEBUG :调试(代码级别)
log4j的配置文件解释:
注意:配置文件一定要放在src下,并命名为log4j.properties
//设置全局默认配置
log4j.rootCategory=INFO(全局的默认日志级别),CONSOLE(向控制台输出),LOGFILE(向log文件输出)
//设置某个包或者某个类或者某个方法的日志级别和输出位置
log4j.logger.包名=DEBUG,LOGFILE
log4j.logger.包名.类名=DEBUG,LOGFILE
log4j.logger.包名.类名.方法=DEBUG,LOGFILE
//设置控制台输出配置
log4j.appender.CONSOLE=org.apache.log4j.ConsoleAppender
##log4j.appender.CONSOLE.Threshould=error
log4j.appender.CONSOLE.layout=org.apache.log4j.PatternLayout
log4j.appender.CONSOLE.layout.ConversionPattern=%C %p %m %n
//设置文件输出配置
log4j.appender.LOGFILE=org.apache.log4j.FileAppender
log4j.appender.LOGFILE.File=E:/my.log
log4j.appender.LOGFILE.Append=true
##log4j.appender.CONSOLE.Threshould=error
log4j.appender.LOGFILE.layout=org.apache.log4j.PatternLayout
log4j.appender.LOGFILE.layout.ConversionPattern=%C %m %L %n
常用的输出格式:
%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”输出日志信息换行
可以在%与模式字符之间加上修饰符来控制其最小宽度、最大宽度、和文本的对齐方式。如:
1)%20c:指定输出category的名称,最小的宽度是20,如果category的名称小于20的话,默认的情况下右对齐。
2)%-20c:指定输出category的名称,最小的宽度是20,如果category的名称小于20的话,”-”号指定左对齐。
3)%.30c:指定输出category的名称,最大的宽度是30,如果category的名称大于30的话,就会将左边多出的字符截掉,但小于30的话也不会有空格。
4)%20.30c:如果category的名称小于20就补空格,并且右对齐,如果其名称长于30字符,就从左边交远销出的字符截掉。