-Java-log4j

Log4j简介: Log4j是用于管理信息日志的插件工具,它是Apache的一个开源项目,通过使用Log4j,我们可以控制日志信息输送的目的地是控制台、文件、GUI组件,甚至是套接口服务器、NT的事件记录器、UNIX、Syslog守护进程、Email邮箱等;我们也可以控制每一条日志的输出格式;通过定义每一条日志信息的级别,我们能够更加细致地控制日志【学Java,到凯哥学堂kaige123.com】的生成过程。最令人感兴趣的就是,这些只需要通过一个配置文件来灵活地进行配置,而不需要修改工程的代码,Log4j因为是在java中使用的,所以lo4j就是log for Java(java的日志)的简写。

Log4j下载: Log4j可以在官网下载,然后将jar包导入到工程就可以使用了。 官网下载地址:http://logging.apache.org/log4j/1.2/download.html

log4j可以直接在Maven工程中通过pom文件配置下载,配置语法:

<!-- https://mvnrepository.com/artifact/log4j/log4j --> <dependency>     <groupId>log4j</groupId>     <artifactId>log4j</artifactId>     <version>1.2.17</version> </dependency>

Lo4j设计结构: Lo4j中最主要的四个结构:Logger、Appender、Layout、日志级别,Lo4j中最高父类是Logger类,然后就是Appender类,这个类是用来设置日志信息的输出方向的,使用Appender可以指定日信息输出到控制台、文件、邮箱等等。 Appender常用的日志信息输出方向:

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

org.apache.log4j.FileAppender(文件)

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

org.apache.log4j.RollingFileAppender(文件大小到达指定尺寸的时候产生一个新的文件)

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

接着就是Layout,Layout是用于布局日志信息的输出格式的,常用的Layout布局: org.apache.log4j.HTMLLayout(以HTML表格形式布局)

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

org.apache.log4j.SimpleLayout(包含日志信息的级别和信息字符串) org.apache.log4j.TTCCLayout(包含日志产生的时间、线程、类别等等信息)

最后是日志级别,日志级别简单地说就是根据你代码中输出日志信息的严重程度来划分一个级别,常用的日志级别有以下几种:

DEBUG 指定细粒度信息事件是最有用的应用程序调试 INFO  指定能够突出在粗粒度级别的应用程序运行情况的信息的消息

WARN  指定具有潜在危害的情况

ERROR  错误事件可能仍然允许应用程序继续运行 FATAL  指定非常严重的错误事件,这可能导致应用程序中止

以上写的级别是做了一个排序的,为什么说是做了排序呢?是因为例如你指定DEBUG级别的话,包括DEBUG以内的以下四个级别的信息都会输出,指定INFO级别则只输出包括INFO内的以下三个级别的信息都会输出,然后以此类推的一个顺序。 例如:

DEBUG>>>DEBUG,INFO,WARN,ERROR,FATAL

INFO>>>INFO,WARN,ERROR,FATAL

WARN>>>WARN,ERROR,FATAL

ERROR>>>ERROR,FATAL

FATAL>>>FATAL

配置Lo4j: 将Log4j的jar下载到工程后就可以开始进行log4j的配置了,首先创建log4j的属性文件,这个文件对于log4j来说相当于Maven的pom文件,与日志相关的东西都在这个文件里进行配置: Maven工程:

普通工程:

编写一个类,用Logger类的对象调用一些方法来输出日志信息:

配置属性文件:

配置属性文件意义详解:

第二行输出方向需要.layout的原因是因为setLayout方法:

那行乱码般地自定义输出格式表示的意义如下:

%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日 :10:28,921     %l 输出日志事件的发生位置,包括类目名、发生的线程,以及在代码中的行数。     %x Used to output the NDC (nested diagnostic context) associated with the thread that generated the logging event %X Used to output the MDC (mapped diagnostic context) associated with the thread that generated the logging event for specified key

运行结果:

选择输出日志的级别:

运行结果:

选择某个包的日志信息输出,在log4j.logger 后面加入一个包名就可以了:

运行结果:

还可以具体到选择某个类的日志信息输出:

运行结果:

还可以在某个类里自定义别名,然后配置到属性文件后就会输出这个类的日志信息: 代码示例:

配置属性文件:

运行结果:

日志方案可以配置多个,只需要名称不同即可:

运行结果:

在Maven工程或者普通工程将工程打包成jar包时,注意要去除log4j日志的属性文件,这里以Maven工程做示例,普通工程移除文件即可,Maven工程需要在生命周期中插入一个插件来帮助去除,这样就不需要手动移除了: 配置语法:

<build>     <plugins>      <plugin>        <groupId>org.apache.maven.plugins</groupId>        <artifactId>maven-jar-plugin</artifactId>        <version>2.4</version>        <configuration>           <excludes>           <exclude>**/*.properties</exclude>          </excludes>        </configuration>      </plugin>     </plugins>  </build>

运行Maven的打包命令可以看到target文件夹和jar包里都没有这个log4j的属性文件:

总结:

时间: 2024-10-09 16:05:02

-Java-log4j的相关文章

[Java][log4j]支持同时按日期和文件大小分割日志

根据DailyRollingFileAppender和RollingFileAppender改编,支持按日期和文件大小分割日志. 源文件: Java代码   package com.bao.logging; import java.io.File; import java.io.IOException; import java.io.Writer; import java.text.SimpleDateFormat; import java.util.Calendar; import java.

java Log4j完整示例

原文:java Log4j完整示例 源代码下载地址:http://www.zuidaima.com/share/1550463640816640.htm 应用实例将日志信息同时输出到控制台,文件和数据库中 .

java log4j基本配置及日志级别配置详解

java log4j日志级别配置详解 1.1 前言 说出来真是丢脸,最近被公司派到客户公司面试外包开发岗位,本来准备了什么redis.rabbitMQ.SSM框架的相关面试题以及自己做过的一些项目回顾,信心满满地去面试,结果别人一上来就问到了最近项目使用的日志系统是什么?日志级别是怎么配置的?当时我都蒙X了,平时都是项目经理搭的,我自己也是随便上网一搜往配置文件一黏贴就OK了.我就这么说完后面试官深深定了我一眼,当时我的内心羞愧到...... 1.2 闲话少说,讲讲日志的发展故事(如果已经了解的

JAVA log4j日志文件使用

//1.导入jar包,log4j-1.2.17.jar//2.src下创建log4j.properties文件//3.配置properties文件/*log4j.rootLogger(默认是对整个工程生效)=DEBUG,stdout(控制台),a, b, -日志级别(ALL<DEBUG<INFO<WARN<ERROR<FATAL<OFF)log4j.logger.com.hutu=info, stdout,表示该日志只对package com.hutu生效 log4j.

Java log4j的环境搭建

一.Log4j是什么? Log4j是Apache的一个开源代码项目,通过使用Log4j,我们可以控制日志信息输出的目的地.最常见的就是输出到控制台或者日志文件.同时,它强大的一点是可以在C.C++等其他程序中使用,只要有相关的接口包即可. 二.如何在Java环境下配置Log4j? 网上的好多做法要么照本宣科,解释的太繁琐,要么太简略,让人不得要领,其实步骤非常简单. Log4j支持两种配置文件格式:XML.Log4j.properties. 我习惯选择后者. 一般只要将该文件放在项目的根目录下即

ecliplse java log4j 配置

log4j的一些配置 a). 新建JavaProject>>新建package>>新建Java类: b). import jar包(一个就够),这里我用的是log4j-1.2.14.jar, c). 新建log4j.properties,置于project根目录下: log4j.rootLogger=info, ServerDailyRollingFile, stdout log4j.appender.ServerDailyRollingFile=org.apache.log4j.

Java --log4j.properties详解

已经完结的工程中用到了log4j,抽时间写一篇日志记录下. //参考文章如下 http://it.oyksoft.com/log4j/ 一.log4j是什么?有什么用? Log4j是一个日志记录工具,基于java语言的.我们可以将日志信息输出到目的地(eg:控制台.某处文件夹等). 二.log4j的日志等级 级别由低到高为 debug < info < warn < error < fatal 其详细对应的描述请参考百度百科. 三.log4j配置方法 有三种方法来配置log4j:1

解决java log4j 配置log4jCaused by: java.lang.ClassNotFoundException: org.apache.logging.log4j.LogManager

前提安装http://mirror.bit.edu.cn/apache/logging/log4j/2.11.2/apache-log4j-2.11.2-bin.zip Buildpath 配置add extend jar :   log4j-1.2.17.jar project/src/下 新建log4j配置文件 安装完成配置完后依然报错Caused by: java.lang.ClassNotFoundException: org.apache.logging.log4j.LogManage

JAVA LOG4J使用方法

首先,需要在项目中导入log4j使用的JAR包,导入结果如下图: 菜单:Build Path->Configure Build Path->Add Extern Jars 导入JAR包后,在SRC级别下创建log4j.properties配置文件,配置方法如下: ### 设置### log4j.rootLogger = debug,stdout,D,E ### 输出信息到控制抬 ### log4j.appender.stdout = org.apache.log4j.ConsoleAppend

Java log4j使用

log4j下载地址: http://logging.apache.org/log4j/1.2/download.html 本人用的是log4j-1.2.17.jar的jar包. 接下来我们配置下一log4j 第一步 加载log4jjar包 首先,我们先在项目中创建一个文件夹, 右键你的项目,选择New,选择Folder,命名为lib,然后点击Finish. 把你下载的jar包复制到此文件夹 然后右击你的log4j,选择Build path,然后在选择Add to Build path现在就加载完