一.log4j简介
1.log4j:log4j即Log for Java,是以精确的粒度/指定的计划控制日志信息输出的日志工具
2.log4j的组成:log4j由Loggers(记录器)、Appenders(输出端)、Layouts(布局)组成
二.log4j使用步骤
1.导入log4j的jar包(log4j-xxx.jar)
2.在src目录下创建log4j.properties或l文件并对其进行配置
3.在要使用log4j的类中声明并初始化Logger对象:private Logger log = Logger(当前类名.Name() 或 "当前类名");
4.经过以上操作后即可在需要打印日志的地方通过log.输出等级方法名("...")打印相关日志
三.log4j配置:
1.log4j配置文件:log4j的配置可以配置在src目录下的log4j.properties或l中,log4j先查
l,如果不到l再查log4j.properties
2.log4j.properties配置:log4j配置主要是对rootLogger的配置,即Logger=输出等级,输出端名1,输出端名2,... //初始化Logger并设置输出等级和输出端类型(一个记录器可有多个输出端),该配置为log4j的基本配置(必不可少的配置)
(1).输出等级说明:log4j中大于或等于Logger中指定的输出等级将被执行,小于Logger中指定的输出等级将被关闭
①.输出等级:用来指定输出的日志信息的重要程度
OFF:关闭所有日志输出,等级最高
FATAL:用于输出致命错误信息
ERROR:用于输出错误信息
WARN:用于输出警告信息
INFO:用于输出一般信息
DEBUG:用于输出开发阶段调试信息
ALL:打开所有日志输出,等级最低
②.输出等级优先级:OFF>FATAL>ERROR>WARN>INFO>DEBUG>ALL
(2).输出端配置
①.输出到文件配置:
log4j.appender.输出端名(自己定义)=输出类型 //设置输出类型
log4j.appender.输出端名(自己定义).layout=输出布局 //设置输出布局
log4j.appender.输出端名(自己定义).layout.ConversionPattern=输出格式 //设置输出的信息格式
log4j.appender.输出端名(自己定义).File=输出文件路径+文件名 //设置将信息输出到指定文件中
②.输出到控制台配置:
log4j.appender.输出端名(自己定义)=输出类型 //设置输出类型
log4j.appender.输出端名(自己定义).layout=输出布局 //设置输出布局
log4j.appender.输出端名(自己定义).layout.ConversionPattern=输出格式 //设置输出的信息格式
(3).配置实例/示例
#下面一行初始化Logger同时给Logger设置输出等级为debug和两个输出端consoleOut、fileOut
Logger=DEBUG,consoleOut,fileOut
#下面三行配置输出端为输出到控制台
soleOut=org.apache.log4j.ConsoleAppender
soleOut.layout=org.apache.log4j.PatternLayout
soleOut.layout.ConversionPattern=%d{yyyy年MM月dd日 HH:mm:ss.SSS}[%24F:%-3L:%-5p]%x %m%n
#下面四行配置输出端为输出到文件
log4j.appender.fileOut=org.apache.log4j.FileAppender
log4j.appender.fileOut.layout=org.apache.log4j.PatternLayout
log4j.appender.fileOut.layout.ConversionPattern=%d{yyyy年MM月dd日 HH:mm:ss.SSS}[%24F:%-3L:%-5p]%x %m%n
log4j.appender.fileOut.File=../webapps/log4jDemo/log/log4j.log
l配置
敬请期待...
4.输出类型:
org.apache.log4j.ConsoleAppender //输出到控制台
org.apache.log4j.FileAppender //输出到文件
org.apache.log4j.DailyRollingFileAppender //输出到文件并每天输出到新的文件log4j与log4j2
org.apache.log4j.RollingFileAppender //输出到文件并指定文件大小,当文件大小达到指定大小时自动把文件改名同时生成另一新文件
org.apache.log4j.WriteAppender //以流格式发送到任意指定地方
org.apache.log4j.jdbc.JDBCAppender //通过JDBC把日志信息输出到数据库
5.输出布局:
org.apache.log4j.PatternLayout //以自定义形式输出(用这种方式的布局可以在输出格式中自定义输出格式)
org.apache.log4j.HTMLLayout //以HTML表格形式输出
org.apache.log4j.SimpleLayout //包含日志信息的级别和信息字符串
org.apache.log4j.TTCCLayout //包含日志产生的时间、线程、类别等
6.输出文件路径:
(1).输出文件默认目录:log4j的默认路径或./(当前目录)是tomcate根目录下的bin目录(即默认情况log4j会把"log4j.appender.输出端名.File=输出文件"中的输出文件创建在该目录下) //注:WebSphere中log4j的日志信息默认输出到WebSphere根目录(通常为IBM目录)下的WebSphere/AppServer/profiles/AppSrv01/logs/server1/SystemOut.log文件中
(2).中间件根目录:log4j中跳到tomcate根目录用../(因为默认目录是根目录下的bin,所以../即可跳到根目录)或${catalina.home} //如:../webapps/log4jDemo/log/log4j.log
(4).绝对路径:log4j中的输出文件路径可以直接写绝对路径 //如:D:\\log\\log4j.log
(5).log4j单独使用时配置输出文件路径为工程根目录:在系统启动的初始化servlet的init方法
中设置系统全局变量(值为系统根目录的完整url),再到log4j.properties中用${系统的初始化servlet中设置的系统全局变量名}获取
①.在l中配置初始化servlet:
<servlet>
<servlet-name>自定义的servlet名称</servlet-name>
<servlet-class>系统启动时要初始化的servlet类名(完整包名+类名)</servlet-class>
<init-param>
<param-name>参数名</param-name>
<param-value>参数值</param-value>
</init-param>
<load-on-startup>1</load-on-startup>
</servlet>
②.public class SystemInitialize extends javax.servlet.http.HttpServlet {
public void init() {
String initParam = getInitParameter("参数名"); //获取l中配置的servlet的初始化参数
initParam = initParam==null || im().equals("") ? "指定目录名" : initParam;
System.setProperty("系统全局变量名", getServletContext().getRealPath("/"或已获取的l中配置的servlet的初始化参数)); //System.setProperty(String key,Object value):设置系统全局变量,设置后可在系统任意处用Property(String key)或${key}来获得全局变量值
}
}
注:在该servlet中设置值为log4j路径的系统全局变量前(即System.setProperty()语句前)不能声明/初始化log4j的任何对象,否则后面设置的路径将不起用(因为在没有设置log4j的
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论