新知识-log4j日志管理-知识点-配置步骤-实例
来源:互联网 发布:快餐店数据流程图 编辑:程序博客网 时间:2024/06/06 20:27
log4j主要由logger、appender和layout共3大组件构成
logger日志记录器,五种级别:
1:debug(Object)输出调试级别的日志信息,它是所有日志级别中最低的
2:info(Object)输出消息日志,它高于debug级别日志
3:warn(Object)输出警告级别的日志信息,高于info
4:error(Object)输出错误级别的日志信息,高于warn
5:fatal(Object)输出致命错误级别的日志信息,是最高的日志级别
日志输出方法:
1:logger.debug(Object message)例:message="调试日志"
2:logger.info(Object message)例:message="消息日志"
3:logger.warn(Object message)例:message="警告日志"
3:logger.error(Object message)例:message="错误日志(数据库连接失败)"
4:logger.fatal(Object message)例:message="内存不足"
配置日志:log4j.[loggerName]=[loggerLevel],AppenderName,……
1:loggerName:日志名称
2:loggerLevel:日志级别
3:appenderName:日志输出目标,例如,控制台console、文件file、或者以流的方式将日志 信息输出到任何输出地点。
日志继承:所有的日志都继承了rootlogger日志的定义。
例:log4j.logger.onelogger=warn,console
log4j.logger.onelogger.newlogger=,file
newlogger没有定义日志级别,但是继承了onelogger的日志级别。定义了输出目标为文件。
appender接口的实现类
1:org.apache.log4j.ConsoleAppender(控制台)
2:org.apache.log4j.FileAppender(文件)
3:org.apache.log4j.DailyRollingFileAppender(每天产生一个日志文件)
4:org.apache.log4j.RollingFileAppender(文件大小到达指定尺寸的时候产生一个新的文件)
5:org.apache.log4j.WriterAppender(将日志信息以流格式发送到任意指定的地方)
6:org.apache.log4j.net.SMTPAppender(当特定的日志时间发生时,一般是指发生错误或者重大错误时,发送邮件)
7:org.apache.log4j.net.SocketAppender(给远程日志服务器的网络套接字节点发送日志事件LoggingEvent对象)
8:org.apache.log4j.net.SocketHubAppender(给远程日志服务器群的网络套接字节点发送日志事件LoggingEvent对象)
9:org.apache.log4j.net.SyslogAppender(给远程异步日志记录的后台程序(daemon)发送消息)
10:org.apache.log4j.net.TalnetAppender(一个专用于向只读网络套接字发送消息的log4jappender)
1)ConsoleAppender选项属性
# -Threshold = DEBUG:指定日志消息的输出最低层次
# -ImmediateFlush = TRUE:默认值是true,所有的消息都会被立即输出
# -Target = System.err:默认值System.out,输出到控制台(err为红色,out为黑色)
2)FileAppender选项属性
# -Threshold = INFO:指定日志消息的输出最低层次
# -ImmediateFlush = TRUE:默认值是true,所有的消息都会被立即输出
# -File = C:\log4j.log:指定消息输出到C:\log4j.log文件
# -Append = FALSE:默认值true,将消息追加到指定文件中,false指将消息覆盖指定的文件内容
# -Encoding = UTF-8:可以指定文件编码格式
3)DailyRollingFileAppender选项属性
# -Threshold = WARN:指定日志消息的输出最低层次
# -ImmediateFlush = TRUE:默认值是true,所有的消息都会被立即输出
# -File = C:\log4j.log:指定消息输出到C:\log4j.log文件
# -Append = FALSE:默认值true,将消息追加到指定文件中,false指将消息覆盖指定的文件内容
# -DatePattern='.'yyyy-ww:每周滚动一次文件,即每周产生一个新的文件。还可以按用以下参数:
# '.'yyyy-MM:每月
# '.'yyyy-ww:每周
# '.'yyyy-MM-dd:每天
# '.'yyyy-MM-dd-a:每天两次
# '.'yyyy-MM-dd-HH:每小时
# '.'yyyy-MM-dd-HH-mm:每分钟
# -Encoding = UTF-8:可以指定文件编码格式
4)RollingFileAppender选项属性
# -Threshold = ERROR:指定日志消息的输出最低层次
# -ImmediateFlush = TRUE:默认值是true,所有的消息都会被立即输出
# -File = C:/log4j.log:指定消息输出到C:/log4j.log文件
# -Append = FALSE:默认值true,将消息追加到指定文件中,false指将消息覆盖指定的文件内容
# -MaxFileSize = 100KB:后缀可以是KB,MB,GB.在日志文件到达该大小时,将会自动滚动.如:log4j.log.1
# -MaxBackupIndex = 2:指定可以产生的滚动文件的最大数
# -Encoding = UTF-8:可以指定文件编码格式
Layout子类
1:org.apache.log4j.HTMLLayout(以HTML表格形式布局)
2:org.apache.log4j.PatternLayout(可以灵活地指定布局模式)
3:org.apache.log4j.SimpleLayout(包含日志信息的级别和信息字符串)
4:org.apache.log4j.TTCCLayout(包含日志产生的时间、线程、类别等等信息)
5:org.apache.log4j.xml.XMLLayout(以XML形式布局)
1)HTMLLayout选项属性
# -LocationInfo = TRUE:默认值false,输出Java文件名称和行号
# -Title=Struts Log Message:默认值 Log4J Log Messages
2)PatternLayout选项属性
# -ConversionPattern = %m%n:格式化指定的消息
3)XMLLayout选项属性
# -LocationInfo = TRUE:默认值false,输出java文件名称和行号
转换字符表
-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字符,就从左边较远输出的字符截掉。
实例代码(Javaee动态网页项目日志管理):
1.log4j.properties(文件应该放在webcontent目录下,url路径就是文件名,其他目录下,以此类推)
#Loggerlog4j.rootLogger=WARN,consolelog4j.logger.onelogger=debug,filelog4j.logger.onelogger.newlogger=,file #Appenderlog4j.appender.console=org.apache.log4j.ConsoleAppenderlog4j.appender.file=org.apache.log4j.RollingFileAppenderlog4j.appender.file.File=c:\log.htmlog4j.appender.file.MaxFileSize=10KBlog4j.appender.file.MaxBackupIndex=3#Layoutlog4j.appender.console.layout=org.apache.log4j.PatternLayoutlog4j.appender.console.layout.ConversionPattern=%t %p - %m%nlog4j.appender.file.layout=org.apache.log4j.HTMLLayout2.jsp页面
<%@ page language="java" contentType="text/html; charset=UTF-8"pageEncoding="UTF-8"%><%@page import="org.apache.log4j.*"%><jsp:directive.page import="java.util.Date" /><!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"><html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>Insert title here</title><style type="text/css">body {FONT-SIZE: 9pt;FONT-FAMILY: 宋体}</style></head><body><%Logger onelogger = Logger.getLogger("onelogger");Logger newlogger = Logger.getLogger("onelogger.newLogger");String path = getServletContext().getRealPath("log4j.properties");PropertyConfigurator.configure(path);onelogger.debug("调试:\t当前日期是" + new Date().toString() + "Log4J初始化完毕");%><TABLE style="WIDTH: 755px" cellSpacing=0 cellPadding=0 width=757><TR><TD colSpan=3><TABLEstyle="BACKGROUND-IMAGE: url(images/head.jpg); WIDTH: 755px; HEIGHT: 150px"cellSpacing=0 cellPadding=0><TR><TDstyle="VERTICAL-ALIGN: text-top; WIDTH: 80px; HEIGHT: 115px; TEXT-ALIGN: right"colSpan=5></TD></TR><TR><TD> ◎ 首 页 ◎博客文章 ◎ 博客注册</TD></TR></TABLE></TD></TR><TR><TDstyle="BACKGROUND-IMAGE: url(images/bg.jpg); VERTICAL-ALIGN: middle; HEIGHT: 450px; TEXT-ALIGN: center"colSpan=3><TABLE style="WIDTH: 224px" height=304 cellSpacing=0 cellPadding=0align="center"><TBODY><TR><TD style="WIDTH: 368px; HEIGHT: 21px; TEXT-ALIGN: center"height=29><STRONG><SPAN style="COLOR: #993300">用户注册协议</SPAN></STRONG></TD></TR><TR><TD style="WIDTH: 368px; HEIGHT: 302px" rowSpan=2><%onelogger.debug("开始读取注册协议信息");%><TABLEstyle="BORDER-RIGHT: black thin solid; BORDER-TOP: black thin solid; BORDER-LEFT: black thin solid; WIDTH: 369px; BORDER-BOTTOM: black thin solid"align=center><TR><TD width="354" colSpan=4 rowSpan=4style="HEIGHT: 15px; TEXT-ALIGN: left;"> 为维护网上公共秩序和社会稳定,请您自觉遵守以下条款:<BR> 为了更好的管理和维护网站,请您自觉遵守以下条款:<p>(一)不得利用本网站进行商业广告宣传; <br> (二)不得利用本网站发送非法文章;<br>(三)不得利用本网站进行上传非法图片; <br> (四)互相尊重,对自己的言论和行为负责; <br>(五)普通用户欲删除文章、评论、图片等信息,请与管理员联系;<br>(六)本网站版权归明日科技公司,不得对本网站进行转载或作为私用。</p><p><br> <br></p></TD></TR><TR></TR><TR></TR><TR></TR><TR><TD style="HEIGHT: 8px; TEXT-ALIGN: center" colSpan=4><INPUTid=Button1 type=submit value=同意以上条款> <INPUTid=Button2 type=submit value=不同意></TD></TR><%onelogger.debug("注册协议信息读取完毕");%></TABLE></TD></TR><TR></TR></TBODY></TABLE></TD></TR><TR><TD align="center" background=images/footer.jpg colSpan=3 height=82><%onelogger.info("读取版权消息");%> 欢迎访问博客网 请使用IE 6.0 在1024×768分辨率下浏览本网站<BR> CopyRight@ 2006明日科技开发 <%onelogger.info("版权消息读取完毕");%></TD></TR></TBODY></TABLE><%onelogger.error("数据库关闭失败");onelogger.fatal("系统内存不足,无法继续完成注册。");%></body></html>
结果展示:
- 新知识-log4j日志管理-知识点-配置步骤-实例
- log4j日志管理重要知识点备忘录
- Log4j日志管理配置 例子
- Log4j日志管理的简单实例
- log4j配置祥解、日志管理
- spring整合log4j日志管理配置
- 日志管理系统 Log4j
- Log4j 日志管理
- 7log4j日志管理
- log4j 日志管理
- Log4j日志集中管理
- log4j 实现日志管理
- 日志管理--log4j
- log4j日志管理
- log4j日志管理
- 使用log4j管理日志
- log4j管理日志
- log4j - 日志输出工具 的使用配置简洁实例
- iOS内购审核被拒 错误状态码21007
- 生成随机数
- 深入理解Activity——生命周期、启动模式、taskAffinity
- Permutations II
- Linux开发--inotify事件机制
- 新知识-log4j日志管理-知识点-配置步骤-实例
- 性能优化--缓存篇
- android开发出现java.util.zip.ZipException: duplicate entry..
- [提高总结四]flexible box的布局练习
- 安卓集成微信支付总结 适合新手
- SQL语句学习
- AngularJS实现前后端分离模式下的权限控制
- OpenCV Mat类型与IplImage类型的相互转换
- webstorm使用说明