【配置文件】log4j是什么log4j
log4j,简单的说就是用于在应用程序中打印日志的工具,目前除了支持java外,还有C,C++,C#,Perl,Ruby等版本。这里只是简单的讨论下java中log4j。
log4j主要有三个组件,分别是Loggers,Appenders和Layouts。三个组件都带了s,显示是复数。Logger相当于记录器,它控制着打印什么样的信息,这些信息被分成了6个控制级别,分别是Trace,Debug,Info,Warn,Error和Fatal。通常情况下每个Logger都有与之对应的名称,用静态方法getLogger()来获得当前Logger,一种习惯的做法是Logger.getLogger(Object.class)。Logger之所以成为带Loggers,其之一是我们可以通过静态方法获取任意多个Logger;之二是Logger存在继承关系,一种依赖与它们名称的继承关系,比如Logger("com.foo")就是Logger("com.foo.a")的父亲,这中继承关系使得没有设定控制级别的子Logger拥有父Logger的控制级别。
Appender描述log输出的目的地,log的Appedner可以是console,file,GUI components,JMS等等,也可以定制自己Appender通过继承AppenderSkeleton类来实现。一个Logger可以有多个Appender,由于Logger的继承关系,同样使得子Logger拥有父Logger的Appender,同时还可以拥有自己的Appender。
Layout描述了log输出的格式,主要用到的类是PatternLayout,这个类里面定义关于转换输出格式用到的一些描述符。
关于怎么使用log4j
log4j为了简化开发提供了配置模式,配置文件可以是XML格式或者properties格式(key=value)。一个简单propterty格式配置文件(log4j.properties):
- # Set root logger level to DEBUG and its only appender to stdout and R. log4j.rootLogger=DEBUG, stdout,R
- log4j.appender.stdout=org.apache.log4j.ConsoleAppender
- log4j.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.appender.R=org.apache.log4j.RollingFileAppender
- log4j.appender.R.File=example.loglog4j.appender.R.MaxFileSize=100KB# Keep one backup filelog4j.appender.R.MaxBackupIndex=1
- log4j.appender.R.layout=org.apache.log4j.PatternLayout
- log4j.appender.R.layout.ConversionPattern=%p %t %c - %m%n
# Set root logger level to DEBUG and its only appender to stdout and R. log4j.rootLogger=DEBUG, stdout,R log4j.appender.stdout=org.apache.log4j.ConsoleAppender log4j.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.appender.R=org.apache.log4j.RollingFileAppender log4j.appender.R.File=example.loglog4j.appender.R.MaxFileSize=100KB# Keep one backup filelog4j.appender.R.MaxBackupIndex=1 log4j.appender.R.layout=org.apache.log4j.PatternLayout log4j.appender.R.layout.ConversionPattern=%p %t %c - %m%n
一个简单的XML格式配置文件(log4j.xml):
- <log4j:configuration xmlns:log4j="http://jakarta.apache.org/log4j/" debug="false">
- <appender name="Console" class="org.apache.log4j.ConsoleAppender">
- <layout class="org.apache.log4j.PatternLayout">
- <param name="ConversionPattern" value="%m%n" />
- </layout>
- </appender>
- <appender name="rollingFileAppender" class="org.apache.log4j.RollingFileAppender">
- <param name="File" value="TEST.log" />
- <param name="Append" value="true" />
- <param name="MaxBackupIndex" value="10" />
- <param name="MaxFileSize" value="512000KB"/>
- <layout class="org.apache.log4j.PatternLayout">
- <param name="ConversionPattern" value="%p (%c:%L)- %m%n" />
- </layout>
- </appender>
- <logger name="com.test">
- <level value ="DEBUG"/>
- <appender-ref ref="fileAppender"/>
- </logger>
- </log4j:configuration>
<log4j:configuration xmlns:log4j="http://jakarta.apache.org/log4j/" debug="false"> <appender name="Console" class="org.apache.log4j.ConsoleAppender"> <layout class="org.apache.log4j.PatternLayout"> <param name="ConversionPattern" value="%m%n" /> </layout> </appender> <appender name="rollingFileAppender" class="org.apache.log4j.RollingFileAppender"> <param name="File" value="TEST.log" /> <param name="Append" value="true" /> <param name="MaxBackupIndex" value="10" /> <param name="MaxFileSize" value="512000KB"/> <layout class="org.apache.log4j.PatternLayout"> <param name="ConversionPattern" value="%p (%c:%L)- %m%n" /> </layout> </appender> <logger name="com.test"> <level value ="DEBUG"/> <appender-ref ref="fileAppender"/> </logger> </log4j:configuration>
在code里,使用PropertyConfigurator.configure(configFileUrl&str) 来加载相应的配置文件。另外,log4j还提供了一个最基本配置BasicConfigurator.configure(),这个简单的配置使用console appender,layout格式为 "%-4r [%t] %-5p %c %x - %m%n"。也可以使用java property来设置log4j.properties这个配置文件:java.property.log4j.configuration=file:/d:/log4j.properties。
转载于:https://www.cnblogs.com/yqskj/articles/2226053.html
【配置文件】log4j是什么log4j相关推荐
- springmvc 项目完整示例05 日志 --log4j整合 配置 log4j属性设置 log4j 配置文件 log4j应用...
log4j 就是log for java嘛,老外都喜欢这样子,比如那个I18n ---internationalization 不就是i和n之间有18个字母... http://logging.a ...
- java log4j 文件_java log4j 日志文件
开发中经常会用到log日志文件,根据业务需要可能不产生很大日志文件给维护和[排错带来了麻烦.所以我们希望能够每天或每个月产生一个日志文件,这样文件不至于过大. 或者根据日志文件大小来判断,超过规定大小 ...
- java log4j 配置_Java:log4j与log4j.properties的配置说明
[来源:Java |作者:Java |时间:2007-7-20 |去论坛]--在强调可重用组件开发的今天,除了自己从头到尾开发一个可重用的日志操作类外,Apache为我们提供了一个强有力的日志操作包- ...
- log4j日志文件 log4j.xml log4j.properties配置
1,导入log4j jar包; 2,配置log4j.xml或log4j.properties文件; ------------------------------------------------- ...
- Spring MVC 项目中配置log4j 出现错误log4j:ERROR Failed to excute sql com.mysql.jdbc.exceptions.jdbc4.MySQLSynt
错误信息如下: 2016-09-08 17:11:45 [com.mchange.v2.c3p0.C3P0Registry]-[INFO] Initializing c3p0-0.9.1.2 [bui ...
- Log4j输出格式控制--log4j的PatternLayout参数含义以及详细配置
http://logging.apache.org/log4j/docs/api/org/apache/log4j/PatternLayout.html 参数 说明 例子 %c 列出logger名字空 ...
- java log4j mysql_java – 配置log4j属性文件以存储在mysql数据库中
如果你使用的是mysql.创建一个log4j.properties文件.这对我有用. 把它放在你的应用程序的根文件夹中.即所有包裹的根.我也有一个包含字段id,日期,用户,消息和类的表日志. log4 ...
- linux log4j 空文件,log4j在linux上不生成日誌文件
log4j在linux下不生成日誌文件 在tomcat的某站點下使用log4j,配置文件log4j.properties在WEB-INF/classes下 內容如下 Java codelog4j.ro ...
- Log4j输出格式控制--log4j的PatternLayout参数含义
做项目被log4j的输出格式化参数搞烦了,索性把API的相关部分大致翻译一下,原文参见http://logging.apache.org/log4j/docs/api/org/apache/log4j ...
最新文章
- NOIP2011聪明的质监员题解
- 在Android Studio中有六种依赖
- 分布式任务队列 Celery — 详解工作流
- android 2.1 监听电话状态并自动接听来电
- go语言笔记——包的概念本质上和java是一样的,通过大小写来区分private,fmt的Printf不就是嘛!...
- ubuntu 开启关闭mysql 服务
- 面向对象程序设计课程进度条
- apache下django配置【原创】
- 荐礼啦php知道与问问的采集插件
- php autoload 性能,PHP __autoload()方法真的影响性能吗?
- 用电池给树莓派供电_3个用于便携式项目的树莓派电池组介绍
- 解决npm install 报错,亲测有效
- HDU 5025 Saving Tang Monk 【状态压缩BFS】
- API通达信接口如何获取股票实时行情?
- 微信小程序零基础入门_第一章 小程序和开发者工具的介绍
- 文献阅读(77)稀疏跳零结构(1)
- 8、灰度图的腐蚀、膨胀、开闭运算、顶帽底帽
- 一般情况下UniApp打包上线APP流程
- UOS开机之后进入emergency mode“journalctl -xb”
- MySQL 爱生活群开放加入喽
热门文章
- Win 8 自定义设置面版
- 关于对FLASH开发,starling、starling feathers、starling MVC框架的理解
- AIX中查找端口号和进程
- openStack controller 管理网口TX数据量非常大 网络总是丢包
- 学习HTML5之塔克大战(详细记录)
- 算法系列15天速成——第三天 七大经典排序【下】
- 从宏观经济状况看目前股市
- 菜鸟requireJS教程---1、初识requirejs
- 1012: [JSOI2008]最大数maxnumber 线段树
- [BZOJ 1588][HNOI 2002] 营业额统计