Log4J的配置和使用
- 格式:doc
- 大小:87.00 KB
- 文档页数:13
log4j的使用方法log4j的使用方法什么是log4jlog4j是一个使用Java编写的开源日志记录工具。
它允许开发人员在程序中进行灵活的日志记录,帮助定位和修复应用程序的错误和问题。
log4j通过配置文件确定日志记录的级别和输出方式,提供了丰富的功能和灵活性。
log4j的基本配置1.导入log4j的依赖库:添加以下依赖到你的项目中的``文件中:<dependency><groupId>log4j</groupId><artifactId>log4j</artifactId><version></version></dependency>2.创建log4j的配置文件:在项目的资源目录下创建一个名为``的文件,并添加以下内容:# 设置日志输出到控制台=INFO, stdout# stdout将日志输出到控制台====%d{yyyy-MM-dd HH:mm:ss} [%p] %m%n以上配置将日志记录级别设为INFO,并将日志输出到控制台。
3.初始化log4j:在你的应用程序入口处(比如main方法),添加以下代码进行log4j的初始化:import ;public class MyApp {public static void main(String[] args) {// 加载log4j的配置文件("");// 其他应用程序代码...}}log4j的日志级别与日志输出log4j提供了不同的日志级别,根据不同的需求可以进行设置。
1.日志级别:–TRACE:最详细的日志级别,常用于调试信息。
–DEBUG:用于调试和开发阶段的详细信息。
–INFO:提供程序的运行状态信息以及其他关键事件。
–WARN:表明潜在的问题,但程序仍能正常运行。
–ERROR:用于记录错误事件,但仍可继续执行。
–FATAL:严重错误,可能导致程序终止执行。
log4j 标准
Log4j是一个Java日志框架,它提供了一种灵活的方式来记录应用程序的
日志信息。
以下是Log4j的标准:
1. 配置文件:Log4j使用一个配置文件来定义日志记录的行为。
这个配置文件可以是XML、properties或YAML格式。
在配置文件中,可以指定日志级别、输出目的地(例如控制台、文件、数据库等)以及其他相关设置。
2. Logger对象:Log4j使用Logger对象来记录日志。
每个Logger对象
都有一个名称,可以通过继承关系组织成层次结构。
Logger对象可以记录
不同级别的日志信息,包括DEBUG、INFO、WARN、ERROR和FATAL。
3. Appender对象:Appender对象定义了日志信息的输出目的地。
例如,可以将日志信息输出到控制台、文件、数据库或电子邮件等。
每个Logger
对象可以关联多个Appender对象,以便将日志信息发送到不同的目的地。
4. 布局和格式化程序:Log4j使用布局或格式化程序来控制日志信息的输出格式。
布局或格式化程序可以将Logger对象记录的日志信息转换成所需的格式,并将其输出到指定的目的地。
5. 日志级别:Log4j使用不同的日志级别来控制日志信息的输出。
这些级别从低到高分别是DEBUG、INFO、WARN、ERROR和FATAL。
通过设置适当的级别,可以过滤掉不需要的日志信息,以便更好地控制应用程序的性能和输出。
总之,Log4j提供了一种灵活、可配置和可扩展的日志记录机制,适用于各种规模的应用程序开发。
log4j的几种用法
Log4j是一个流行的Java日志框架,它提供了多种用法来帮助开发人员记录和管理应用程序的日志信息。
以下是几种常见的
Log4j用法:
1. 配置日志级别,Log4j允许开发人员根据不同的需求配置日志级别,包括DEBUG、INFO、WARN、ERROR等级别。
通过配置,可以控制哪些日志消息会被记录下来,从而方便开发人员调试和排查问题。
2. 输出日志到不同的目的地,Log4j支持将日志消息输出到不同的目的地,比如控制台、文件、数据库等。
开发人员可以根据需求配置日志输出的目的地,以便对日志进行集中管理和分析。
3. 日志格式化,Log4j允许开发人员自定义日志消息的格式,包括时间戳、日志级别、类名、方法名等信息。
通过格式化,可以使日志消息更易读,方便开发人员理解和分析。
4. 日志过滤,Log4j提供了过滤器功能,可以根据特定的条件过滤掉不需要记录的日志消息,从而减少日志的冗余和提高日志记
录的效率。
5. 动态配置,Log4j支持动态配置,开发人员可以在应用程序运行时动态修改日志配置,比如调整日志级别、更改日志输出目的地等,而不需要重启应用程序。
总之,Log4j提供了丰富的功能和灵活的配置选项,可以帮助开发人员高效地记录和管理应用程序的日志信息。
通过合理地使用Log4j,开发人员可以更好地了解应用程序的运行状况,及时发现和解决问题。
android log4j 用法Android Log4j 用法:详细步骤解析Log4j是一个功能强大且广泛用于Java程序的日志记录工具。
它提供了灵活的日志配置选项,允许开发人员根据应用程序的需求自定义日志输出。
在Android开发中,我们可以使用Log4j来记录应用程序的日志,以便更好地进行调试和故障排除。
本文将一步一步介绍如何在Android项目中使用Log4j,并对其用法进行详细解析。
第一步:引入Log4j库要使用Log4j,我们首先需要将其库文件添加到Android项目的依赖项中。
可以从Apache官方网站上下载Log4j的最新版本。
下载完成后,将其包含在项目的libs文件夹中。
接下来,在项目的build.gradle文件中添加以下依赖项:dependencies {implementation files('libs/log4j.jar')}这样,Log4j库就会被添加到项目中。
第二步:创建配置文件Log4j需要一个配置文件来定义日志输出的格式和目标。
我们可以在项目的res目录下创建一个名为log4j.properties的文件,并按照如下内容进行配置:# 设置根日志级别为DEBUGlog4j.rootLogger=DEBUG,stdout# 配置控制台输出log4j.appender.stdout=org.apache.log4j.ConsoleAppenderlog4j.appender.stdout.Target=System.outyout=org.apache.log4j.PatternLayoutyout.ConversionPattern=%d{yyyy-MM-dd HH:mm:ss} %p %t %c - %m%n# 配置文件输出log4j.appender.file=org.apache.log4j.RollingFileAppenderlog4j.appender.file.File=/sdcard/app.loglog4j.appender.file.MaxFileSize=5MBlog4j.appender.file.MaxBackupIndex=4yout=org.apache.log4j.PatternLayoutyout.ConversionPattern=%d{yyyy-MM-dd HH:mm:ss} %p %t %c - %m%n在上述配置文件中,我们首先设置了根日志级别为DEBUG,这意味着只有DEBUG级别及以上的日志才会被输出。
Java开发日志分析工具Log4j使用详解Log4j是一个用于记录应用程序运行时日志的Java开发工具。
它可以帮助开发人员更好地理解和监控应用程序的运行状态,以及解决潜在的问题。
下面将详细介绍Log4j的使用方法和功能。
一、Log4j的配置文件Log4j使用一个名为log4j.properties的配置文件来定义日志的输出格式、日志级别、输出目标等。
这个配置文件需要放在应用程序的classpath下,以便Log4j能够找到它并加载配置。
配置文件中的每一个配置项都有一个特定的名称和对应的值。
例如,可以使用"log4j.rootLogger"配置项来设置根日志记录器的级别,使用"log4j.appender.console"配置项来设置控制台输出的格式等。
二、Log4j的日志级别Log4j提供了多个日志级别,用于控制日志的输出。
这些日志级别按照严重程度递增,包括TRACE、DEBUG、INFO、WARN、ERROR和FATAL。
可以通过配置文件中的"log4j.rootLogger"配置项来设置根日志记录器的级别,从而决定哪些级别的日志会被记录。
三、Log4j的输出目标Log4j可以将日志输出到不同的目标,包括控制台、文件、数据库等。
可以通过配置文件中的"log4j.appender"配置项来设置输出目标。
常用的输出目标有:1. ConsoleAppender:将日志输出到控制台。
2. FileAppender:将日志输出到文件。
3. RollingFileAppender:将日志输出到滚动文件,可以设置文件的大小和数量,以便自动滚动日志文件。
4. JDBCAppender:将日志输出到数据库。
四、Log4j的日志格式Log4j可以自定义日志的输出格式。
可以通过配置文件中的"log4j.appender"配置项来设置输出格式。
Log4j简介收藏一、Log4j使用1、配置运行环境,包含log4j-1.2.9.jar,使用BasicConfigurator.configure()配置运行环境。
2、使用Logger.getLogger(TestLogginLevel.class)获取Logger实例。
3、使用fatal()、error()、warn()、info()、debug()打印Log。
二、记录器(Logger)log4j允许程序员定义多个记录器,每个记录器有自己的名字,记录器之间通过名字来表明隶属关系(或家族关系)。
1、 Logger的层次结构。
X.y的logger是x.y.z的logger的父logger,x 是x.y.z的祖先logger.1. Logger loggerX = Logger.getLogger(Y.class);2.3. Logger loggerY = Logger.getLogger(X.class);//取得的是同一个Logger实例。
2、 Logger的等级(Logger-Level filter)。
如果Logger没有定义等级,则使用它父Logger的等级。
根Logger的等级为DEBUG。
等级次序:OFF>FATAL>ERROR>WARN>INFO>DEBUG>ALL;可以使用logger. setLevel(Level.DEBUG)设置Logger的等级。
等级过滤:如果执行等级<设定等级,则相应操作不会执行。
3、基准过滤等级(Hierarchy-wide Threshold filter)。
它有两种作用范围,全局范围和Appender范围,它的过滤级别高于实行等级。
可以使用如下程序设置:1. LoggerRepository repository = logger.getLoggerRepository();2.3. repository.setThreshold(Level.OFF);三、存储器(Appenders):负责Log的保存。
一.log4j简介1.log4j:log4j即Log for Java,是以精确的粒度/指定的计划控制日志信息输出的日志工具2.log4j的组成:log4j由Loggers(记录器)、Appenders(输出端)、Layouts(布局)组成二.log4j使用步骤1.导入log4j的jar包(log4j-xxx.jar)2.在src目录下创建log4j.properties或log4j.xml文件并对其进行配置3.在要使用log4j的类中声明并初始化Logger对象:private Logger log = Logger.getLogger(当前类名.class.getName() 或"当前类名");4.经过以上操作后即可在需要打印日志的地方通过log.输出等级方法名("...")打印相关日志三.log4j配置:1.log4j配置文件:log4j的配置可以配置在src目录下的log4j.properties或log4j.xml中,log4j 先查找log4j.xml,如果找不到log4j.xml再查找log4j.properties2.log4j.properties配置:log4j配置主要是对rootLogger的配置,即log4j.rootLogger=输出等级,输出端名1,输出端名2,... //初始化Logger并设置输出等级和输出端类型(一个记录器可有多个输出端),该配置为log4j的基本配置(必不可少的配置)(1).输出等级说明:log4j中大于或等于log4j.rootLogger中指定的输出等级将被执行,小于log4j.rootLogger中指定的输出等级将被关闭①.输出等级:用来指定输出的日志信息的重要程度OFF:关闭所有日志输出,等级最高FATAL:用于输出致命错误信息ERROR:用于输出错误信息W ARN:用于输出警告信息INFO:用于输出一般信息DEBUG:用于输出开发阶段调试信息ALL:打开所有日志输出,等级最低②.输出等级优先级:OFF>FATAL>ERROR>W ARN>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、fileOutlog4j.rootLogger=DEBUG,consoleOut,fileOut#下面三行配置输出端为输出到控制台log4j.appender.consoleOut=org.apache.log4j.ConsoleAppenderyout=org.apache.log4j.PatternLayoutyout.ConversionPattern=%d{yyyy年MM月dd日HH:mm:ss.SSS}[%24F:%-3L:%-5p]%x %m%n#下面四行配置输出端为输出到文件log4j.appender.fileOut=org.apache.log4j.FileAppenderyout=org.apache.log4j.PatternLayoutyout.ConversionPattern=%d{yyyy年MM月dd日HH:mm:ss.SSS}[%24F:%-3L:%-5p]%x %m%nlog4j.appender.fileOut.File=../webapps/log4jDemo/log/log4j.log3.log4j.xml配置敬请期待...4.输出类型:org.apache.log4j.ConsoleAppender //输出到控制台org.apache.log4j.FileAppender //输出到文件org.apache.log4j.DailyRollingFileAppender //输出到文件并每天输出到新的文件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中设置的系统全局变量名}获取①.在web.xml中配置初始化servlet:<servlet><servlet-name>自定义的servlet名称</servlet-name><servlet-class>系统启动时要初始化的servlet类名(完整包名+类名)</servlet-class><init-param> <!--配置servlet初始化参数--><param-name>参数名</param-name><param-value>参数值</param-value></init-param><load-on-startup>1</load-on-startup> <!--配置启动级别,如果不配置,系统将不初始化该servlet,且配置的级别必须在所有servle/监听启动前启动,即级别必须最高--> </servlet>②.public class SystemInitialize extends javax.servlet.http.HttpServlet {public void init() {String initParam = getInitParameter("参数名"); //获取web.xml中配置的servlet 的初始化参数initParam = initParam==null || initParam.trim().equals("") ? "指定目录名" : initParam;System.setProperty("系统全局变量名", getServletContext().getRealPath("/"或已获取的web.xml中配置的servlet的初始化参数)); //System.setProperty(String key,Object value):设置系统全局变量,设置后可在系统任意处用System.getProperty(String key)或${key}来获得全局变量值}}注:在该servlet中设置值为log4j路径的系统全局变量前(即System.setProperty()语句前)不能声明/初始化log4j的任何对象,否则后面设置的路径将不起用(因为在没有设置log4j的路径前或设置的log4j路径没有生效前使用log4j或初始化/声明log4j对象,这时log4j只能将默认的配置加载到内存中,而log4j的对象只加载一次(即单例模式),所以后面设置的路径将加载不到内存)③.通过以上配置后即可在log4j.properties中配置输出文件路径的地方用${系统的初始化servlet中设置的系统全局变量名}获取系统根目录或web.xml中配置的参数的目录(6).log4j与SSH使用时配置输出文件路径为工程根目录:思想类似于"log4j单独使用时配置输出文件路径为工程根目录"中,因为系统启动时Spring会用System.setProperty("webapp.root","系统根目录")将系统根目录设置到系统全局变量中①.在web.xml加入以下配置:<context-param><!--该节点非必须配置项,如果不配置时报错则配置上,如果不配置时不报错且有效则可不配--><param-name>log4jConfigLocation</param-name><param-value>/WEB-INF/classes/log4j.properties</param-value></context-param><listener><listener-class>org.springframework.web.util.Log4jConfigListener</listener-class> </listener>②.通过以上配置后即可在log4j.properties中配置输出文件路径的地方用${webapp.root}获取系统根目录注:该配置可能需要spring-web.jar的支持,也可能不需要,如果系统启动报错时说明需要,如果不报错且有效则不需要7.输出格式%d:表示当前时间/日期,格式有%d{yyyy-MM-dd HH:mm:ss,SSS或yyyy年MM月dd日HH:mm:ss,SSS或HH:mm:ss,SSS}、%d{DA TE}、%d{ABSOLUTE}%F:表示产生该日志输出事件所在的类名(不包含包名)%c:等同于完整的包名+%F再去掉.java后缀名%C:完全等同于%c%C{1}:等同于%F去掉.java后缀名%L:当前产生该日志输出事件所在的类的行号%p:表示当前的输出等级%m:表示当前输出的日志信息%n:换行%M:表示产生该日志输出事件所在的方法名%r:表示从log4j的第一次输出到当前信息的输出所消耗的毫秒数%l:表示产生该日志输出事件的完整的包名.类名.方法名+具有超链接功能的类+行数,等同于%C%M%F%L一起使用的效果+超链接功能%t:表示产生该日志输出事件的线程名-:左对齐%和字母之间的数字表示占几个字符,之间的负号(-)表示左对齐(反之:没有负号(-)则右对齐),之间的点(.)表示多种规则可以同时使用四.log4j对系统性能的影响:在程序中大量输出日志,显然会对系统的性能带来影响,log4j对性能的影响取决于以下因素1.输出位置:输出到控制台和输出到文件的速度是不一样的2.输出格式:格式简单速度快,格式复杂速度较慢3.日志级别:日志级别设置越低,输出的日志内容就越多,对性能的影响越大Log4j Democlass Log4jDemo{//创建日志记录器static Logger logger = Logger.getLogger(Log4jDemo.class);//设置日志记录器级别//logger.setLevel((Level)Level.WARN));//public static void main(String[] args){SimpleLayout layout = new SimpleLayout();FileAppender appender = null;try{appender = new FileAppender(layout,"output.txt",false);}catch(Exception e){e.printStackTrance();}logger.addAppender(appender);logger.setLevel((Level)Level.DEBUG);logger.debug("Here is some DEBUG");("Here is some INFO");logger.warn("Here is some WARN");logger.error("Here is some ERROR");logger.fatal("Here is some FATAL");}}。
Spring mvc中log4j的配置与使用如果使用spring插件创建一个spring template project,它会默认带log4j,只要改下log4j的配置就可以使用了,如果自己创建的project,就要加载下log4f的包了,使用步骤如下1.pom.xml加入log4j的依赖包[html]<!-- Logging --><dependency><groupId>org.slf4j</groupId><artifactId>slf4j-api</artifactId><version>1.6.6</version></dependency><dependency><groupId>org.slf4j</groupId><artifactId>jcl-over-slf4j</artifactId><version>1.6.6</version><scope>runtime</scope></dependency><dependency><groupId>org.slf4j</groupId><artifactId>slf4j-log4j12</artifactId><version>1.6.6</version><scope>runtime</scope></dependency>2.在src/main/resources下创建log4j.xml[html]<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE log4j:configuration PUBLIC "-//APACHE//DTD LOG4J 1.2//EN" "log4j.dtd"><log4j:configuration xmlns:log4j="/log4j/"><!-- Appenders --><appender name="console" class="org.apache.log4j.ConsoleAppender"><param name="Target" value="System.out" /><layout class="org.apache.log4j.PatternLayout"><param name="ConversionPattern" value="%d [%t] %-5p: %c - %m%n" /></layout></appender><appender name="file" class="org.apache.log4j.DailyRollingFileAppender"><param name="File" value="${log.dir}/com.xxx.account.log"/><param name="Append" value="true"/><param name="DatePattern" value=".yyyy-MM-dd" /><layout class="org.apache.log4j.PatternLayout"><param name="ConversionPattern" value="%d [%t] %-5p %c - %m%n"/></layout></appender><appender name="account-error" class="org.apache.log4j.FileAppender"><param name="File" value="${log.dir}/account-error.log"/><param name="Append" value="true"/><layout class="org.apache.log4j.PatternLayout"><param name="ConversionPattern" value="%d|[%t]|%-5p|%c| - %m%n"/></layout></appender><!-- Application Loggers --><logger name="com.xxx.account"><level value="info" /></logger><logger name="com.xxx.account-error"><level value="error" /><appender-ref ref="${log.appender}" /><appender-ref ref="account-error" /></logger><!-- Root Logger --><root><level value="info"></level><appender-ref ref="${log.appender}" /></root></log4j:configuration>log4j.xml中定义了3个appender,就是log输出的位置,一个是控制台,两个是文件,但有一个文件account-error.log是专用于收集特殊错误的文件,可以定义多个分别为不同的场景使用,log4j的相关定义如下:[html](1)。
1. 什么是Log4j插件Log4j是一个开源的日志记录框架,广泛应用于Java项目中。
Log4j插件是用于在开发过程中方便地使用Log4j框架的工具,能够帮助开发人员快速配置和管理日志记录功能。
2. Log4j插件的安装在使用Log4j插件之前,首先需要在开发环境中安装Log4j插件。
可以通过Maven或手动下载Jar包的方式将Log4j插件导入到项目中,然后在项目配置文件中声明Log4j插件的依赖关系。
3. Log4j插件的配置在项目中成功导入Log4j插件后,需要对插件进行配置。
首先需要创建一个Log4j配置文件(通常命名为log4j.properties或log4j.xml),在配置文件中指定日志记录的格式、输出目标、日志级别等参数。
4. 使用Log4j插件记录日志配置完成后,开发人员可以通过调用Log4j插件提供的API来记录日志。
开发人员可以在代码中插入日志记录语句,指定日志的级别(如DEBUG、INFO、WARN、ERROR等),以及日志的内容。
通过Log4j插件记录的日志可以输出到控制台、文件、数据库等不同的目标。
5. Log4j插件的优点Log4j插件提供了丰富的日志记录功能,可以根据需要灵活地配置日志记录的方式和输出目标。
Log4j插件具有较高的性能和稳定性,适用于各种规模的项目。
另外,Log4j插件支持多种日志级别,开发人员可以根据实际需要精细地控制日志的记录和输出。
6. Log4j插件的注意事项在使用Log4j插件的过程中,需要注意配置文件的正确指定和日志记录语句的合理使用。
对于不同的项目和需求,需要仔细选择适合的日志记录方式和输出目标,以便保证日志记录的准确性和便捷性。
7. 结语Log4j插件是一个优秀的日志记录工具,能够帮助开发人员轻松地实现日志记录的功能。
通过仔细的配置和合理的使用,开发人员可以充分发挥Log4j插件的优势,为项目提供有效的日志管理和追踪功能。
希望本文对大家了解Log4j插件的用法有所帮助。
在软件开发和系统运维中,日志是一个非常重要的组成部分。
它记录了系统的运行状态、错误信息、用户操作等各种信息,可以帮助开发人员和运维人员快速定位和解决问题,提高系统稳定性和可维护性。
log4j是一个用于记录日志的Java库,常用于企业级Java应用程序的日志记录。
而将log4j日志读取到数据库中,可以更好地对日志进行管理、分析和统计。
一、log4j日志读取到数据库的方法1. 配置log4j需要在log4j的配置文件中添加一个数据库追加器(appender),例如JDBCAppender。
该追加器可以将日志信息写入到指定的数据库表中。
需要指定数据库连接信息、表名、字段名等,以确保日志能够正确地写入到数据库中。
2. 编写数据库表在数据库中创建一个用于存储日志的表,通常包括日志记录时间、日志级别、日志内容等字段。
需要根据实际需求设计表结构,以满足日志的存储和查询需求。
3. 修改log4j配置文件在log4j的配置文件中,需要指定使用之前配置的JDBCAppender,并且配置日志输出的格式和级别。
也可以根据不同的情况定义不同的日志输出规则,以便将不同级别的日志信息写入到不同的数据库表中。
4. 编写日志处理类通常需要编写一个日志处理类,用于将log4j的日志信息转换成数据库表中的记录。
该类需要连接数据库,将日志信息写入到数据库对应的表中。
5. 测试需要进行测试,确保log4j能够正确地将日志信息写入到数据库中,并且能够通过数据库查询工具进行查询和分析。
测试可以包括记录不同级别的日志信息、异常信息等,以验证日志的写入和查询功能是否正常。
二、总结回顾通过以上方法,我们可以将log4j的日志信息写入到数据库中,以便更好地管理和分析日志信息。
这样可以帮助我们及时发现和解决系统中的问题,提高系统的稳定性和可维护性。
也可以通过数据库工具对日志信息进行统计和分析,以了解系统的运行状况和用户操作情况,为系统优化和改进提供数据支持。
编辑词条log4j在强调可重用组件开发的今天,除了自己从头到尾开发一个可重用的日志操作类外,Apache为我们提供了一个强有力的日志操作包-Log4j。
官方站点:/log4j/Log4j是Apache的一个开放源代码项目,通过使用Log4j,我们可以控制日志信息输送的目的地是控制台、文件、GUI组件、甚至是套接口服务器、NT的事件记录器、UNIX Syslog守护进程等;我们也可以控制每一条日志的输出格式;通过定义每一条日志信息的级别,我们能够更加细致地控制日志的生成过程。
最令人感兴趣的就是,这些可以通过一个配置文件来灵活地进行配置,而不需要修改应用的代码。
此外,通过Log4j其他语言接口,您可以在C、C++、.Net、PL/SQL程序中使用Log4j,其语法和用法与在Java程序中一样,使得多语言分布式系统得到一个统一一致的日志组件模块。
而且,通过使用各种第三方扩展,您可以很方便地将Log4j 集成到J2EE、JINI甚至是SNMP应用中。
说明:下面分为三部分,第一部分讲解如何配置log4j;第二部分为对log4j.properties配置文件中的各个属性的讲解;第三部分为对log4j的详细讲解。
如果只想配置上log4j,那么只需要看前两个部分就可以,如果想对log4j深入了解,则还需看第三部分。
一、Log4j配置第一步:加入log4j-1.2.8.jar到lib下。
第二步:在CLASSPATH下建立log4j.properties。
内容如下:1 log4j.rootCategory=INFO, stdout , R23 log4j.appender.stdout=org.apache.log4j.ConsoleAppender4 yout=org.apache.log4j.PatternLayout5 yout.ConversionPattern=[QC] %p [%t] %C.%M(% L) | %m%n67 log4j.appender.R=org.apache.log4j.DailyRollingFileAppender8 log4j.appender.R.File=D:\\Tomcat 5.5\\logs\\qc.log9 yout=org.apache.log4j.PatternLayout10 yout.ConversionPattern=%d-[TS] %p %t %c - %m% n1112 .neusoft=DEBUG13 .opensymphony.oscache=ERROR14 .sf.navigator=ERROR15 mons=ERROR16 .apache.struts=WARN17 .displaytag=ERROR18 .springframework=DEBUG19 .ibatis.db=WARN20 .apache.velocity=FATAL2122 .canoo.webtest=WARN2324 .hibernate.ps.PreparedStatementCache=WARN25 .hibernate=DEBUG26 .logicalcobwebs=WARN第三步:相应的修改其中属性,修改之前就必须知道这些都是干什么的,在第二部分讲解。
第四步:在要输出日志的类中加入相关语句:定义属性:protected final Log log = LogFactory.getLog(getClass());在相应的方法中:if (log.isDebugEnabled()){log.debug(“System …..”);}二、Log4j说明1 log4j.rootCategory=INFO, stdout , R此句为将等级为INFO的日志信息输出到stdout和R这两个目的地,stdout和R 的定义在下面的代码,可以任意起名。
等级可分为OFF、FATAL、ERROR、WARN、INFO、DEBUG、ALL,如果配置OFF则不打出任何信息,如果配置为INFO这样只显示INFO, WARN, ERROR的log信息,而DEBUG信息不会被显示,具体讲解可参照第三部分定义配置文件中的logger。
3 log4j.appender.stdout=org.apache.log4j.ConsoleAppender此句为定义名为stdout的输出端是哪种类型,可以是org.apache.log4j.ConsoleAppender(控制台),org.apache.log4j.FileAppender(文件),org.apache.log4j.DailyRollingFileAppender(每天产生一个日志文件),org.apache.log4j.RollingFileAppender(文件大小到达指定尺寸的时候产生一个新的文件)org.apache.log4j.WriterAppender(将日志信息以流格式发送到任意指定的地方)具体讲解可参照第三部分定义配置文件中的Appender。
yout=org.apache.log4j.PatternLayout此句为定义名为stdout的输出端的layout是哪种类型,可以是org.apache.log4j.HTMLLayout(以HTML表格形式布局),org.apache.log4j.PatternLayout(可以灵活地指定布局模式),org.apache.log4j.SimpleLayout(包含日志信息的级别和信息字符串),org.apache.log4j.TTCCLayout(包含日志产生的时间、线程、类别等等信息)具体讲解可参照第三部分定义配置文件中的Layout。
yout.ConversionPattern= [QC] %p [%t] %C.%M (%L) | %m%n如果使用pattern布局就要指定的打印信息的具体格式ConversionPattern,打印参数如下:%m 输出代码中指定的消息%p 输出优先级,即DEBUG,INFO,WARN,ERROR,FATAL%r 输出自应用启动到输出该log信息耗费的毫秒数%c 输出所属的类目,通常就是所在类的全名%t 输出产生该日志事件的线程名%n 输出一个回车换行符,Windows平台为“rn”,Unix平台为“n”%d 输出日志时间点的日期或时间,默认格式为ISO8601,也可以在其后指定格式,比如:%d{yyyy MMM dd HH:mm:ss,SSS},输出类似:2002年10月18日2 2:10:28,921%l 输出日志事件的发生位置,包括类目名、发生的线程,以及在代码中的行数。
[QC]是log信息的开头,可以为任意字符,一般为项目简称。
输出的信息[TS] DEBUG [main] AbstractBeanFactory.getBean(189) | Returning cached instance of singleton bean 'My AutoProxy'具体讲解可参照第三部分定义配置文件中的格式化日志信息。
7log4j.appender.R=org.apache.log4j.DailyRollingFileAppender此句与第3行一样。
定义名为R的输出端的类型为每天产生一个日志文件。
8log4j.appender.R.File=D:\\Tomcat 5.5\\logs\\qc.log此句为定义名为R的输出端的文件名为D:\\Tomcat 5.5\\logs\\qc.log可以自行修改。
yout=org.apache.log4j.PatternLayout与第4行相同。
yout.ConversionPattern=%d-[TS] %p %t %c - %m% n与第5行相同。
. neusoft =DEBUG指定com.neusoft包下的所有类的等级为DEBUG。
可以把com.neusoft改为自己项目所用的包名。
.opensymphony.oscache=ERROR.sf.navigator=ERROR这两句是把这两个包下出现的错误的等级设为ERROR,如果项目中没有配置E HCache,则不需要这两句。
mons=ERROR.apache.struts=WARN这两句是struts的包。
.displaytag=ERROR这句是displaytag的包。
(QC问题列表页面所用).springframework=DEBUG此句为Spring的包。
.hibernate.ps.PreparedStatementCache=WARN.hibernate=DEBUG此两句是hibernate的包。
以上这些包的设置可根据项目的实际情况而自行定制。
三、log4j详解1、定义配置文件Log4j支持两种配置文件格式,一种是XML格式的文件,一种是Java特性文件log4j.properties(键=值)。
下面将介绍使用log4j.properties文件作为配置文件的方法:①、配置根LoggerLogger 负责处理日志记录的大部分操作。
其语法为:log4j.rootLogger = [ level ] , appenderName, appenderName, …其中,level 是日志记录的优先级,分为OFF、FATAL、ERROR、WARN、INF O、DEBUG、ALL或者自定义的级别。
Log4j建议只使用四个级别,优先级从高到低分别是ERROR、WARN、INFO、DEBUG。
通过在这里定义的级别,您可以控制到应用程序中相应级别的日志信息的开关。
比如在这里定义了INFO级别,只有等于及高于这个级别的才进行处理,则应用程序中所有DEBUG级别的日志信息将不被打印出来。
ALL:打印所有的日志,OFF:关闭所有的日志输出。
appenderName就是指定日志信息输出到哪个地方。
可同时指定多个输出目的地。
②、配置日志信息输出目的地AppenderAppender 负责控制日志记录操作的输出。
其语法为:log4j.appender.appenderName = .of.appender.classlog4j.appender.appenderName.option1 = value1…log4j.appender.appenderName.optionN = valueN这里的appenderName为在①里定义的,可任意起名。
其中,Log4j提供的appender有以下几种:org.apache.log4j.ConsoleAppender(控制台),org.apache.log4j.FileAppender(文件),org.apache.log4j.DailyRollingFileAppender(每天产生一个日志文件),org.apache.log4j.RollingFileAppender(文件大小到达指定尺寸的时候产生一个新的文件),可通过log4j.appender.R.MaxF ileSize=100KB设置文件大小,还可通过log4j.appender.R.MaxBackupIndex=1设置为保存一个备份文件。