log4j 使用记录

又很懒了。。 好久没来了,必须自我批评一下。。。

===========================我是分割线=============================

鼎鼎大名的log4j,要说用过吧其实也不算的,以前公司里分工太细,配置log这件事情,压根轮不着我,我只需要知道就行,大概会改个info,debug级别,基本上也就不需要干别的了,所以对于它的使用也是模模糊糊,唉,其实是压根不知道。惭愧。。。好弱。。。

这次自己些小工具,可以配置log 当然用system.out.println 也是可以的。。。。 只不过这样真的太low了。。。。

所以还是要想着用一下滴,然后就在网上搜了搜大概怎么用,都干哈的,怎么回事稍微了解了一下。

这是我从好几个博客上摘抄过来了, 最后会附上原文连接的。

1. 在maven中引用包

<dependency>    <groupId>commons-logging</groupId>    <artifactId>commons-logging</artifactId>    <version>1.1.1</version></dependency>
<dependency>    <groupId>log4j</groupId>    <artifactId>log4j</artifactId>    <version>1.2.15</version></dependency>

2. 代码中使用大概是这样屎儿的:
Log logger = LogFactory.getLog(ClassName.class.getName());logger.info("lalalala").

3. 配置logging.properties
log4j.rootLogger=INFO,all  #这个配置了吧,默认所有的log都会遵循这个(没有特殊定制的)log4j.appender.console=org.apache.log4j.ConsoleAppender  #默认的appender, 这个是打印到console上log4j.appender.console.layout=org.apache.log4j.PatternLayout  #这个吧,布局设置,具体啥可以去官网看看吧 https://logging.apache.org/log4j/1.2/manual.htmllog4j.appender.console.layout.ConversionPattern=%d %-5p %X{processor} %X{module} %X{file} [%t] %c - %m%n # 这个是输出的log每一行的格式,具体意义文后看
# 单独配置一个类的log输出格式log4j.logger.util.UtilClass=DEBUG,ee #如果想要单独给某个类或者某个package中的log特殊指定一下,可以用这个log4j.logger.<包名,或者类名>指定logger, 具体在显示的时候会优先选择粒度最小的相应logger,也就是说如果同时指定了包,以及这个包里面的类的logger,那个这个类就会按照这个类的logger来显示log, 包中其它的类则按照包的logger显示。“ee”是指向相应的名称,可以随便起名,不过不要忘记定义对应的appender,这里也可以有多个appender,到时候log就会在多个地方显示啦。log4j.appender.ee=org.apache.log4j.RollingFileAppender #指定具体怎么处理,这个是指如果文件大小超出限制,就新建个文件存储。 还有写别的,后面会貼。 注意一下“ee” 这个东东,是我在logger那里指定的appender的名称哦。 log4j.appender.ee.File=C:\\temp\\logs\\utils.log #要将log存到哪个文件中log4j.appender.ee.MaxFileSize=100MB #文件大小的配置log4j.appender.ee.MaxBackupIndex=10 #最多几个文件,多了就删掉啦。log4j.appender.ee.layout=org.apache.log4j.PatternLayoutlog4j.appender.ee.layout.ConversionPattern=%d %-5p %X{processor} %X{module} %X{file} [%t] %c - %m%n

4. 最后我要怎么使这个配置文件啊。。。。 此段纯复制粘贴的

在默认情况下 log4j 会从WEB-INF/classes/ 下读取log4j.properties

我们可以通过多种方式修改配置文件的位置

a.在web.xml中指定:
web.xml

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>

b.注册在System.properties里

Java代码 收藏代码
-Dlog4j.configuration=file:/home/bea/log4j1.propertie

c.注册在环境变量里

Java代码 收藏代码
LOG4J_CONFIG_FILE=/home/bea/log4j.properties

最后,复制粘贴一些前面挖下的坑:

Log4J配置文件的基本格式如下:

#配置根Logger
log4j.rootLogger  =   [ level ]   ,  appenderName1 ,  appenderName2 ,  …

#配置日志信息输出目的地Appender
log4j.appender.appenderName  =  fully.qualified.name.of.appender.class 
  log4j.appender.appenderName.option1  =  value1 
  … 
  log4j.appender.appenderName.optionN  =  valueN 

#配置日志信息的格式(布局)
log4j.appender.appenderName.layout  =  fully.qualified.name.of.layout.class 
  log4j.appender.appenderName.layout.option1  =  value1 
  … 
  log4j.appender.appenderName.layout.optionN  =  valueN

其中 [level] 是日志输出级别,共有5级:

FATAL       0  
ERROR      3  
WARN       4  
INFO         6  
DEBUG      7 


Appender 
为日志输出目的地,Log4j提供的appender有以下几种:

org.apache.log4j.ConsoleAppender(控制台),
org.apache.log4j.FileAppender(文件),
org.apache.log4j.DailyRollingFileAppender(每天产生一个日志文件),
org.apache.log4j.RollingFileAppender(文件大小到达指定尺寸的时候产生一个新的文件),
org.apache.log4j.WriterAppender(将日志信息以流格式发送到任意指定的地方)

Layout:日志输出格式,Log4j提供的layout有以下几种:

org.apache.log4j.HTMLLayout(以HTML表格形式布局),
org.apache.log4j.PatternLayout(可以灵活地指定布局模式),
org.apache.log4j.SimpleLayout(包含日志信息的级别和信息字符串),
org.apache.log4j.TTCCLayout(包含日志产生的时间、线程、类别等等信息)

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

    %m   输出代码中指定的消息
  %p   输出优先级,即DEBUG,INFO,WARN,ERROR,FATAL 
  %r   输出自应用启动到输出该log信息耗费的毫秒数 
  %c   输出所属的类目,通常就是所在类的全名 
  %t   输出产生该日志事件的线程名 
  %n   输出一个回车换行符,Windows平台为“/r/n”,Unix平台为“/n” 
  %d   输出日志时间点的日期或时间,默认格式为ISO8601,也可以在其后指定格式,比如:%d{yyy MMM dd HH:mm:ss , SSS},输出类似:2002年10月18日  22 : 10 : 28 , 921  
  %l   输出日志事件的发生位置,包括类目名、发生的线程,以及在代码中的行数。举例:Testlog4.main(TestLog4.java: 10 ) 

剩下的看原文吧:

http://blog.csdn.net/azheng270/article/details/2173430/

http://blog.csdn.net/memray/article/details/18193449

http://www.thinksaas.cn/group/topic/101727/

http://www.blogjava.net/wilesun/archive/2007/10/30/156999.html

时间: 2024-10-25 08:44:11

log4j 使用记录的相关文章

log4j日志记录简析

log4j的日志系统包含两个主要概念:Logger与Appender,前者负责触发日志记录动作,后者决定日志输出至何处. 各个Logger实例之间可能存在父子关系,所有实例都有一个共同的root Logger实例,如下文的第一行的rootCategory就是root Logger实例. log4j示例文件如下: log4j.rootCategory=info,stdout # CONSOLE appender not used by default log4j.appender.stdout=o

ELK菜鸟手记 (一) 环境配置+log4j日志记录

1. 背景介绍 在大数据时代,日志记录和管理变得尤为重要. 以往的文件记录日志的形式,既查询起来又不方便,又造成日志在服务器上分散存储,管理起来相当麻烦, 想根据一个关键字查询日志中某个关键信息相当困难. 这个时候,ELK诞生了. 什么是ELK? 简单来说:它是一套完整的日志记录和分析的解决方案平台. 2. 技术栈介绍 ELK = Elasticsearch + Logstash + Kibana 2-1) Elasticsearch: ( Elasticsearch is a distribu

java Web应用配置log4j日志记录

第一步:首先建立一个WEB工程,去log4j官网下log4j的JAR包导入到工程的lib目录下 第二步:在src目录下建一个log4j.properties 文件,文件命名可以由自己,只是记加载时候和这里名字一致就行: log4j.properties  里边的内容如下: ### set log levels ### log4j.rootLogger = debug,stdout,E log4j.appender.stdout = org.apache.log4j.ConsoleAppender

在android中配置 slf4j + log4j 日志记录框架

需求: 在项目开发中,需要记录 操作日志 .起初自己写了个简单的日志记录文本写入到文本的方法,后来随着项目的膨胀,需要考虑更多的操作,开始考虑性能问题. 实现: 考虑使用 slf4j + log4j 框架来实现.slf4j 是日志记录的一个facade,支持多种日志框架.log4j是个很优秀的日志记录框架. 实现: 下载类库: 先到各主站点下载类库 slf4j 网址 :http://www.slf4j.org/download.html log4j网址: http://logging.apach

SLF4J、Log4J使用记录

程序中一直在用log4j,之前都没了解过,只知道是打印日志信息的.最近独立新建了几个开发工程,发现slf4j老有冲突,开始关注起来,我用log4j打印日志,与slf4j有毛关系,怎么老冲突呢.网上找了下原因,解决了下问题,才发现slf4j的重要性.参考多篇博文,特此记录. slf4j:Simple Logging Facade for Java,为java提供的简单日志Facade.Facade:门面,更底层一点说就是接口.他允许用户以自己的喜好,在工程中通过slf4j接入不同的日志系统.更直观

Log4j日志记录

1.导入log4j的jar包 2.写log4j.properties文件,配置日志记录参数,一般参数如下所示: 第二行指定了输出日志的目录,此处用的相对路径,也可换成绝对路径: 第三行指定了输出的记录格式,此处为时间 信息类型 程序名称 日志记录所在行数 日志信息,输出如下形式: 3.在程序开始初始化log4j,代码如下: PropertyConfigurator.configure(path + "log4j.properties"); 4.定义log4j的全局变量private L

log4j配置记录

①配置根Logger,其语法为:  ##log4j.rootLogger =[level],appenderName,appenderName2,... #level是日志记录的优先级,分为OFF,TRACE,DEBUG,INFO,WARN,ERROR,FATAL,ALL #Log4j建议只使用四个级别,优先级从低到高分别是DEBUG,INFO,WARN,ERROR #通过在这里定义的级别,您可以控制到应用程序中相应级别的日志信息的开关 #比如在这里定义了INFO级别,则应用程序中所有DEBUG

92 log4j日志记录

下载地址 https://files-cdn.cnblogs.com/files/Scorpicat/log4j-1.2.12.jar.zip 导入配置文件 在eclipse的目录中找到: log4j.properties文件导入项目src下 log4j导入项目 配置详解 第1行:全局配置:INFO表示最低启动日志级别为INFO,CONSOLE表示日志执行到控制台,如果要输出到文件,添加:LOGFILE 第6行:某个类的自定义触发级别 第9-12:输出到控制台的配置 第15-20行:输出到文件的

Java中的日志——Java.util.logging、log4j、commons-logging

Java中给项目程序添加log主要有三种方式,一使用JDK中的java.util.logging包,一种是log4j,一种是commons-logging.其中log4j和commons-logging都是apache软件基金会的开源项目.这三种方式的区别如下: Java.util.logging,JDK标准库中的类,是JDK 1.4 版本之后添加的日志记录的功能包. log4j,最强大的记录日志的方式.可以通过配置 .properties 或是 .xml 的文件, 配置日志的目的地,格式等等.