首页 > 编程知识 正文

java日志常用包log4j的简单介绍

时间:2024-03-07 18:23:14 阅读:331621 作者:LLTS

本文目录一览:

log4j的使用,即java该如何使用日志文件

java使用日志文件log4j的方法:

1、 新建一个Java工程,导入Log4j包,pom文件中对应的配置代码如下:

!-- log4j support --

dependency

   groupIdlog4j/groupId

   artifactIdlog4j/artifactId

   version1.2.17/version

/dependency

2、resources目录下创建log4j.properties文件

### 设置###

log4j.rootLogger = debug,stdout,D,E

### 输出信息到控制抬 ###

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

### 输出DEBUG 级别以上的日志到=/home/duqi/logs/debug.log ###

log4j.appender.D = org.apache.log4j.DailyRollingFileAppender

log4j.appender.D.File = /home/duqi/logs/debug.log

log4j.appender.D.Append = true

log4j.appender.D.Threshold = DEBUG

log4j.appender.D.layout = org.apache.log4j.PatternLayout

log4j.appender.D.layout.ConversionPattern = %-d{yyyy-MM-dd HH:mm:ss}  [ %t:%r ] - [ %p ]  %m%n

### 输出ERROR 级别以上的日志到=/home/admin/logs/error.log ###

log4j.appender.E = org.apache.log4j.DailyRollingFileAppender

log4j.appender.E.File =/home/admin/logs/error.log

log4j.appender.E.Append = true

log4j.appender.E.Threshold = ERROR

log4j.appender.E.layout = org.apache.log4j.PatternLayout

log4j.appender.E.layout.ConversionPattern = %-d{yyyy-MM-dd HH:mm:ss}  [ %t:%r ] - [ %p ]  %m%n

3、输出日志的例子如下

package com.javadu.log;

import org.slf4j.Logger;

import org.slf4j.LoggerFactory;

public class Log4JTest {

   private static final Logger logger = LoggerFactory.getLogger(Log4JTest.class);

   public static void main(String[] args) {

       // 记录debug级别的信息

       logger.debug("This is debug message.");

       // 记录info级别的信息

       logger.info("This is info message.");

       // 记录error级别的信息

       logger.error("This is error message.");

   }

}

4、输出结果

首先,控制台输入如下图所示:

然后,查看/Users/duqi/logs目录下的debug.log和error.log文件,内容分别如下,可以看出:

请教一个简单的java日志怎样写

关于java日志,下面以Log4j为例子说明(供参考)。

1、导包(Log4j所依赖的jar包)

2、配置属性文件。如下:

3、遍写调用日志方法的接口

public interface LoggerUtil {

 

    // 得到Logger,用于打印日志

    Logger logger = Logger.getLogger(LoggerUtil.class);

}

4、使用Log4j

//删除数据

    @RequestMapping("/delete.do")

    public String delete(Students students) {

 

        try {

             

            stuService.delete(students);

        } catch (Exception e) {

            // 直接使用

            LoggerUtil.logger.error(e.getMessage());

        }

        return "redirect:selectAll.do";

    }

在Java中log4j日志记录

例子如下:

/**

* filename : MiProperty.java

* Title : 北京minstar软件工作室

* Description: 关于log4j包的最简单应用

* @Copyright : Copyright (c) 2008,北京minstar软件工作室

* Company : 北京minstar软件工作室

* @author : Zhao.Jian

* Date : 2007-8-16

* @version 1.0.0.0

* @Development Environment : Eclipse 3.1.0

*/

package app;

import java.io.FileInputStream;

import java.util.Properties;

import org.apache.log4j.Logger;

import org.apache.log4j.PropertyConfigurator;

public class logjTest {

public static final Logger logger = Logger.getLogger(logjTest.class);

public static void main(String args[])throws Exception{

String configFile = "log4j.properties";

PropertyConfigurator.configure(configFile);

logger.info("测试log4j之包的使用!");

Properties perties = new Properties();

FileInputStream fis = new FileInputStream(configFile);

perties.load(fis);

String str=perties.getProperty("log4j.rootLogger");

logger.info("测试获取key值,如log4j.rootLogger="+str);

}

}

java中如何使用log4j将记录的操作日志信息

主要是通过配置文件

1.1 Log4j 支持两种配置文件格式,一种是 XML 格式的文件,一种是 Java 特性文件    lg4j.properties (键 = 值)。

Logger 负责处理日志记录的大部分操作。 

其语法为: 

log4j.rootLogger = [ level ] , appenderName, appenderName, …

2.1 level 是日志记录的优先级,分为 OFF 、 FATAL 、 ERROR 、 WARN 、 INFO 、 DEBUG 、 ALL

或者自定义的级别。

2.2Log4j 建议只使用四个级别,优先级从高到低分别是 ERROR 、 WARN 、 INFO 、 DEBUG

2.3通过在这里定义的级别,您可以控制到应用程序中相应级别的日志信息的开关。比如在这里定义了

INFO 级别,只有等于及高于这个级别的才进行处理,则应用程序中所有 DEBUG 级别的日志信息将不被打印出来。

2.4 ALL: 打印所有的日志,

OFF :关闭所有的日志输出。 appenderName 就是指定日志信息输出到哪个地方。可同时指定多个输出目的地。

配置日志信息输出目的地 Appender 负责控制日志记录操作的输出。

3.1log4j.appender.appenderName = fully.qualified.name.of.appender.class 

3.2log4j.appender.appenderName.option1 = value1 

3.3log4j.appender.appenderName.optionN = valueN

Log4j 提供的 appender

4.1org.apache.log4j.ConsoleAppender (控制台), 

4.2org.apache.log4j.FileAppender (文件), 

4.3org.apache.log4j.DailyRollingFileAppender (每天产生一个日志文件), 

4.4org.apache.log4j.RollingFileAppender

(文件大小到达指定尺寸的时候产生一个新的文件),可通过 log4j.appender.R.MaxFileSize=100KB

设置文件大小,还可通过 4.5log4j.appender.R.MaxBackupIndex=1 设置为保存一个备份文件。 

4.6org.apache.log4j.WriterAppender (将日志信息以流格式发送到任意指定的地方)

5.Layout

5.1org.apache.log4j.HTMLLayout (以 HTML 表格形式布局),

5.2org.apache.log4j.PatternLayout (可以灵活地指定布局模式),

5.3org.apache.log4j.SimpleLayout (包含日志信息的级别和信息字符串),

5.4org.apache.log4j.TTCCLayout (包含日志产生的时间、线程、类别等等信息)

6.格式化日志信息

Log4J 采用类似 C 语言中的 printf 函数的打印格式格式化日志信息,打印参数如下:

6.1%m 输出代码中指定的消息

6.2%p 输出优先级,即 DEBUG , INFO , WARN , ERROR , FATAL

6.3%r 输出自应用启动到输出该 log 信息耗费的毫秒数

6.4%c 输出所属的类目,通常就是所在类的全名

6.5%t 输出产生该日志事件的线程名

6.6%n 输出一个回车换行符, Windows 平台为 “rn” , Unix 平台为 “n”

6.7%d 输出日志时间点的日期或时间,默认格式为 ISO8601 ,也可以在其后指定格式,比如: %d{yyyy MMM dd HH:mm:ss,SSS} ,输出类似: 2002 年 10 月 18 日 22 : 10 : 28 , 921

6.8%l 输出日志事件的发生位置,包括类目名、发生的线程,以及在代码中的行数。

7.  log4j.propertie 示例文件:

log4j.rootCategory=INFO, stdout,file

7.1 定义名为 stdout 的输出端的类型

log4j.appender.stdout=org.apache.log4j.ConsoleAppender

log4j.appender.stdout.layout=org.apache.log4j.PatternLayout

log4j.appender.stdout.layout.ConversionPattern=[QC] %p [%t] %C.%M(%L) | %m%n

7.2定义名为 file 的输出端的类型为每天产生一个日志文件。

log4j.appender.file =org.apache.log4j.DailyRollingFileAppender

log4j.appender.file.File=log.txt

log4j.appender.file.layout=org.apache.log4j.PatternLayout

log4j.appender.file.layout.ConversionPattern=%d-[TS] %p %t %c - %m%n

7.3指定 com.neusoft 包下的所有类的等级为 DEBUG 。可以把 com.neusoft 改为自己项目所用的包名。

log4j.logger.com.neusoft=DEBUG

7.4如果项目中没有配置 EHCache ,则配置以下两句为 ERROR 。

log4j.logger.com.opensymphony.oscache=ERROR

log4j.logger.net.sf.navigator=ERROR

8struts 配置

log4j.logger.org.apache.commons=ERROR

log4j.logger.org.apache.struts=WARN

8.1 displaytag 配置

log4j.logger.org.displaytag=ERROR

8.2  spring 配置

log4j.logger.org.springframework=DEBUG

8.3  ibatis 配置

log4j.logger.com.ibatis.db=WARN

8.4   hibernate 配置

log4j.logger.org.hibernate=DEBUG

log4j.logger.org.apache.velocity=FATAL

log4j.logger.com.canoo.webtest=WARN

java 中 log4j 的概念、作用以及如何使用

我直接用最简单的实例你一看就懂了的,希望你耐心看下去:

Log4j实在是很熟悉,几乎所有的Java项目都用它啊。但是我确一直没有 搞明白。终于有一天我受不了了,定下心去看了一把文档,才两个小时,我终于搞明白了。一般情况下Log4j总是和Apache Commons-logging一起用的,我也就一起介绍吧。多了个东西不是更麻烦,而是更简单![if !supportLists]一、[endif]Log4j的简单思想Log4j真的很简单,简单到令人发指的地步。不是要记录日志吗?那就给你一个Log,然后你用Log来写东西就行了,先来一个完整类示例:packagetest;importorg.apache.commons.logging.Log;importorg.apache.commons.logging.LogFactory;publicclass Test { static Log log = LogFactory.getLog(Test.class); public void log(){ log.debug("Debug info."); log.info("Info info"); log.warn("Warn info"); log.error("Error info"); log.fatal("Fatal info"); } /** * @param args */ public static void main(String[] args) { Test test = new Test(); test.log(); }}别怕,看完这篇文章你就会觉得很简单了。 Log4j默认把日志信息分为五个等级 debug info warn error fatal虽然可以自己添加等级,但是我觉得没有必要,五个够用了吧!你要写入信息的时候就把信息归为五个等级中的一个,然后调用相应的函数即可。 分五个等级到底有什么用呢?日志信息到底写到哪里去了? “LogFactory.getLog(Test.class)”又是什么意思捏?接着往下看吧!Log4j的关键之处在于它的继承思想。也就是一个Log可以继承另外一个Log的属性(输出到哪里,日志等级,日志格式等等)。怎么继承?Log4j是根据Log的名字来判断继承关系的,比如:名字为“com.zhlmmc.lib”的Log就是“com.zhlmmc.lib.log”的parent,明白了吧!Log4j还有一个rootLogger,相当于Java的Object。回过头来看“LogFactory.getLog(Test.class)”这里的“Test.class”事实上传进去的是Test这个类的完整路径(包名+类名),“test.Test”。这样如果存在“test”这个Log 那么Test这个Log就继承它,否则就继承rootLogger。 那具体的Log属性是在哪里定义的呢?[if !supportLists]二、[endif]常见的配置文件虽然可以用xml或者在运行时用Java来配置Log4j,但还是properties文件好用啊!log4j.rootLogger=info,stdoutlog4j.appender.stdout=org.apache.log4j.ConsoleAppenderlog4j.appender.stdout.layout=org.apache.log4j.PatternLayout#Pattern to output the caller's file name and line number.log4j.appender.stdout.layout.ConversionPattern=%5p[%t] (%F:%L) - %m%n分析一下:第一行,配置log4j.rootLogger你明白吧。应为它是根,总得配 置一下,否则别的Log继承什么啊。其他的Log可以配置也可以不配置。等号后面的第一个参数表示日志级别,可以填五个级别中的一种,后面的参数都是让 Log知道输出到哪里,如果你想让日志输出到两个地方就加两个输出参数,比如:log4j.rootLogger=info, stdout, file这里的info表示,该Log的日志级别为info,所有级别小于info的日志都不会被记录。比如使用这个配置文件的话,我刚开始举的那个类中log.debug("Debug info.");这句话是不起作用的,因为debug的级别小于info。这样就很容易控制什么信息在调试的时候要显示,什么信息在发布的时候要去掉。这些都不用改代码,很方便吧。但,stdout和file又是什么呢?接着往下看,就是配置stdout了,这个名字是随便取的,你可以叫它A:log4j.appender.A=org.apache.log4j.ConsoleAppender那么上面的rootLogger的参数stdout也要改成A,其他用到的地方当然也要改。这里的关键不是名字,而是appender类型,比如这里的“ConsoleAppender”,看明白了吧,输出到 Console。后面两行都是设置日志格式的,一般情况下你就照抄吧。既然是最简入门关注于理解Log4j的工作原理,我就不介绍file类型的 appender了,一搜一大把。在实际的项目开发中,很可能遇到所引用的包用Log4j来记录日志,比如Hibernate。那么在这里你可以很容易的控制这个包如何记录日志。比如在上面的配置文件中加一行:log4j.logger.org.hibernate=fatal 那么所有org.hibernate包下面的类就只会显示很少的信息,因为fatal的级别最高啊。[if !supportLists]三、[endif]部署别怕,这可不是部署Tomcat。把log4j的包和commons- logging的包(加在一起才两个)放到classpath下面。然后把配置文件保存为log4j.properties,也放在classpath下 面(如果用Eclipse的话,放在src目录下即可)。然后你就可以跑了。

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。