Log4J文档
log4j文件切分规则
log4j文件切分规则一、引言log4j是一个Java日志框架,方便开发者记录应用程序的运行日志并进行管理。
在使用log4j时,我们可以通过配置文件来定义日志的输出方式和切分规则。
本文将重点讨论log4j文件切分规则。
二、按文件大小切分在日志文件的切分规则中,按文件大小切分是最常见的一种方式。
通过配置log4j,我们可以设置一个文件的最大大小,当该文件达到最大大小时,log4j会自动将其备份,并创建一个新的日志文件来记录日志。
这种方式可以确保每个日志文件不会过大,方便查阅和管理。
三、按日期切分除了按文件大小切分,log4j还支持按日期切分日志文件。
通过设置切分的时间间隔,log4j会在指定的时间点自动将当前日志文件备份,并创建一个新的日志文件来记录后续的日志信息。
这种方式可以按照日期来管理日志文件,方便按照时间段进行查阅。
四、按文件数量切分除了按文件大小和日期切分,log4j还支持按文件数量切分日志文件。
通过设置切分的文件数量,当日志文件数量达到指定值时,log4j会自动将最早的日志文件备份,并创建一个新的日志文件来记录新的日志信息。
这种方式可以保持日志文件数量的稳定,避免文件过多导致管理困难。
五、动态切分规则在log4j中,我们可以通过配置动态切分规则来灵活地管理日志文件。
例如,我们可以根据业务需求,定义不同的切分规则,如按照不同的模块或日志级别进行切分。
这样可以根据具体的需求来管理日志文件,使日志信息更加有意义和可读性。
六、配置示例下面是一个示例的log4j配置文件,展示了如何设置文件切分规则:```log4j.rootLogger=INFO, filelog4j.appender.file=org.apache.log4j.RollingFileAppenderlog4j.appender.file.File=/path/to/log/file.loglog4j.appender.file.MaxFileSize=10MBlog4j.appender.file.MaxBackupIndex=10yout=org.apache.log4j.PatternLayoutyout.ConversionPattern=%d{yyyy-MM-dd HH:mm:ss} %-5p %c{1}:%L - %m%n```在上述配置中,我们定义了一个名为file的appender,它是一个RollingFileAppender。
log4j 标准
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提供了一种灵活、可配置和可扩展的日志记录机制,适用于各种规模的应用程序开发。
log4j2中文手册
Log4j2使用手册一.Log4j2介绍Log4j1.x 被广泛应用于应用程序,但是近年发展明显放缓,因为要维持较老java版本的使用,使得log4j1.x 的发展更困难。
而作为其代替品,slf4j/logback 做出了许多必要改进,为什么还需要log4j2? 主要有以下几个原因: (1)Log4j2被设计用作审计日志框架, log4j 和logback 在重载配置时,都会丢失日志时间,而log4j2不会。
Logback中appenders中的异常对于应用来说是不可见的,log4j2可以配置异常向应用渗透。
(2)Log4j2 包含基于LMAX Disruptor library的下一代无锁Asynchronous Loggers ,在多线程环境下,Asynchronous Loggers 相比slf4j / logback 提高了10倍以上的吞吐量,并且有着更低的延时。
(3)Log4j2的插件机制,使得在不需要修改框架的情况下,通过添加 Appenders, Filters, Layouts, Lookups 轻松扩展框架。
(4)简单的插件配置,无需指定具体类名即可在configuration 中配置插件。
(5)支持自定义日志级别,可以在代码或者configuration 中自定义日志级别。
(6)支持lambda表达式,java8的应用可以在请求日志级别启用时使用lambda表达式懒构建一个日志消息,不需要显示的日志级别检查,使得代码更简洁。
(7)支持消息对象,消息允许支持有趣和复杂的结构,传递到日志记录系统,并且可以高效的操作。
用户可以自由创建消息类型和编写Layouts, Filters and Lookups 来操作这些消息。
(8)Log4j1在Appenders 上支持Filters。
logback增加了TurboFilters,允许在日志事件在处理前进行过滤。
Log4j2可以配置Filters 在Logger后者Appender 前运行。
Log4j配置最全说明
Log4j配置最全说明1. log4j 的配置文件Log4j 支持两种配置文件格式,一种是 XML 格式的文件,一种是Java 特性文件 lg4j.properties (键 = 值)。
1.1. log4j configuration scripts in properties formatlg4j.properties 文件作为作为常用的配置文件的方法如下:配置根 LoggerLogger 负责处理日志记录的大部分操作。
其语法为:log4j.rootLogger = [ level ] , appenderName, appenderName, … 其中, level 是日志记录的优先级,分为 OFF 、 FATAL 、 ERROR 、WARN 、 INFO 、 DEBUG 、 ALL 或者自定义的级别。
Log4j 建议只使用四个级别,优先级从高到低分别是 ERROR 、 WARN 、INFO 、 DEBUG 。
通过在这里定义的级别,您可以控制到应用程序中相应级别的日志信息的开关。
比如在这里定义了 INFO 级别,只有等于及高于这个级别的才进行处理,则应用程序中所有 DEBUG 级别的日志信息将不被打印出来。
ALL: 打印所有的日志, OFF :关闭所有的日志输出。
appenderName 就是指定日志信息输出到哪个地方。
可同时指定多个输出目的地。
Appender配置日志信息输出目的地 Appender 负责控制日志记录操作的输出。
其语法为:log4j.appender.appenderName =.of.appender.classlog4j.appender.appenderName.option1 = value1log4j.appender.appenderName.optionN = valueN其中, Log4j 提供的 appender 有以下几种:org.apache.log4j.ConsoleAppender (控制台),org.apache.log4j.FileAppender (文件),org.apache.log4j.DailyRollingFileAppender (每天产生一个日志文件),org.apache.log4j.RollingFileAppender (文件大小到达指定尺寸的时候产生一个新的文件),可通过log4j.appender.R.MaxFileSize=100KB 设置文件大小,还可通过log4j.appender.R.MaxBackupIndex=1 设置为保存一个备份文件。
log4j基本使用方法
log4j是一个非常强大的log记录软件,下面我们就来看看在项目中如何使log4j。
首先当然是得到log4j的jar档,推荐使用1.2.X版,下载地址:/log4j/1.2/download.html我们先看一个最简单的示例:【示例1】项目结构:【注:由于这里的多个项目公用一个jar档,我们可以创建一个专门放置jar档的Java工程,然后将jar档放到lib目录下。
在要使用的工程中按图所示进行引用】Java代码:Java代码1package com.coderdream.log4j;23import org.apache.log4j.Logger;45public class HelloLog4j {67private static Logger logger = Logger.getLogger(HelloLog4j.class);89/**10* @param args11*/12public static void main(String[] args) {13// System.out.println("This is println message.");1415// 记录debug级别的信息16logger.debug("This is debug message.");17// 记录info级别的信息("This is info message.");19// 记录error级别的信息20logger.error("This is error message.");21}22}配置文件log4j.properties:Properties代码23#可以设置级别:debug>info>error24#debug:显示debug、info、error25#info:显示info、error26#error:只error27log4j.rootLogger=debug,appender128#log4j.rootLogger=info,appender129#log4j.rootLogger=error,appender13031#输出到控制台32log4j.appender.appender1=org.apache.log4j.ConsoleAppender33#样式为TTCCLayoutyout=org.apache.log4j.TTCCLayout输出结果:Console代码35[main] DEBUG com.coderdream.log4j.HelloLog4j - This is debug message.36[main] INFO com.coderdream.log4j.HelloLog4j - This is info message.37[main] ERROR com.coderdream.log4j.HelloLog4j - This is error message. 通过配置文件可知,我们需要配置3个方面的内容:1、根目录(级别和目的地);2、目的地(控制台、文件等等);3、输出样式。
log4j
FileAppender Threshold ImmediateFlush File
设置日志消息的初始级别 设置日志信息是否立即输出,默认为true 设置输出的文本 默认值是true,新增文件内容是否覆盖原 有内容,false为覆盖
org.apache.log4j.PatternLayout 可以灵活地指定布局模式 ConversionPattern=%m%n :指定怎样格式化指定的消息.
占位符参考log4j API
org.apache.log4j.SimpleLayout
包含日志信息的级别和信息字符串,内 置的简单布局没有提供自定义设置 包含日志产生的时间,线程,类别等等 信息
Append
DailyRollingFileAppender DatePattern的格式符 的格式符 Threshold '.'yyyy-MM
设置日志消息的初始级别 每月
#在配置文件中设置: '.'yyyy-ww 每周 ImmediateFlush 设置日志信息是否立即输出,默认为true #设置为每月输出 log4j.appender.MyAppenderName.DatePattern = '.'yy-MM '.'yyyy-MM-dd 每天 //在程序中使用 设置输出的文本 File //设置为每月输出 '.'yyyy-MM-dd-a 每天两次 myFile. setDatePattern ("'.true,新增文件内容是否覆盖原 '.'yyyy-MM-dd-HH 每小时 有内容,false为覆盖
log4j2配置文件log4j2.xml解析
log4j2配置⽂件log4j2.xml解析⼀、背景最近由于项⽬的需要,我们把log4j 1.x的版本全部迁移成log4j 2.x 的版本,那随之⽽来的slf4j整合log4j的配置(使⽤Slf4j集成Log4j2构建项⽬⽇志系统的完美解决⽅案)以及log4j2配置⽂件的详解,就需要我们来好好聊⼀聊了。
本⽂就专门来讲解下log4j2.xml配置⽂件的各项标签的意义。
⼆、配置全解1.关于配置⽂件的名称以及在项⽬中的存放位置log4j 2.x版本不再⽀持像1.x中的.properties后缀的⽂件配置⽅式,2.x版本配置⽂件后缀名只能为”.xml”,”.json”或者”.jsn”.系统选择配置⽂件的优先级(从先到后)如下:(1).classpath下的名为log4j2-test.json 或者log4j2-test.jsn的⽂件.(2).classpath下的名为log4j2-test.xml的⽂件.(3).classpath下名为log4j2.json 或者log4j2.jsn的⽂件.(4).classpath下名为log4j2.xml的⽂件.我们⼀般默认使⽤log4j2.xml进⾏命名。
如果本地要测试,可以把log4j2-test.xml放到classpath,⽽正式环境使⽤log4j2.xml,则在打包部署的时候不要打包log4j2-test.xml即可。
2.缺省默认配置⽂件<?xml version="1.0" encoding="UTF-8"?><Configuration status="WARN"><Appenders><Console name="Console" target="SYSTEM_OUT"><PatternLayout pattern="%d{HH:mm:ss.SSS} [%t] %-5level %logger{36} - %msg%n"/></Console></Appenders><Loggers><Root level="error"><AppenderRef ref="Console"/></Root></Loggers></Configuration>3.配置⽂件节点解析(1).根节点Configuration有两个属性:status和monitorinterval,有两个⼦节点:Appenders和Loggers(表明可以定义多个Appender和Logger). status⽤来指定log4j本⾝的打印⽇志的级别.monitorinterval⽤于指定log4j⾃动重新配置的监测间隔时间,单位是s,最⼩是5s.(2).Appenders节点,常见的有三种⼦节点:Console、RollingFile、File.Console节点⽤来定义输出到控制台的Appender.name:指定Appender的名字.target:SYSTEM_OUT 或 SYSTEM_ERR,⼀般只设置默认:SYSTEM_OUT.PatternLayout:输出格式,不设置默认为:%m%n.File节点⽤来定义输出到指定位置的⽂件的Appender.name:指定Appender的名字.fileName:指定输出⽇志的⽬的⽂件带全路径的⽂件名.PatternLayout:输出格式,不设置默认为:%m%n.RollingFile节点⽤来定义超过指定⼤⼩⾃动删除旧的创建新的的Appender.name:指定Appender的名字.fileName:指定输出⽇志的⽬的⽂件带全路径的⽂件名.PatternLayout:输出格式,不设置默认为:%m%n.filePattern:指定新建⽇志⽂件的名称格式.Policies:指定滚动⽇志的策略,就是什么时候进⾏新建⽇志⽂件输出⽇志.TimeBasedTriggeringPolicy:Policies⼦节点,基于时间的滚动策略,interval属性⽤来指定多久滚动⼀次,默认是1 hour。
log4j2.xml 标准配置写法
一、概述log4j2是Apache Software Foundation的一个开源日志框架,广泛应用于Java应用程序的日志记录和管理。
在使用log4j2时,通常需要编写log4j2.xml文件进行配置。
本文将介绍log4j2.xml标准配置的写法,帮助读者更加有效地使用log4j2进行日志记录和管理。
二、log4j2.xml文件概述1. log4j2.xml是log4j2的配置文件,用于定义日志记录器、日志级别、输出目的地等配置信息。
2. log4j2.xml采用XML格式进行配置,通过定义各种元素和属性来实现对log4j2框架的配置和定制。
三、log4j2.xml标准配置写法在编写log4j2.xml文件时,可以按照以下标准配置进行操作:1. 配置根节点```xml<?xml version="1.0" encoding="UTF-8"?><Configuration status="WARN" monitorInterval="30"><!-- 配置日志级别、Appenders等信息 --></Configuration>```其中,根节点<Configuration>包含了两个属性:status和monitorInterval。
status属性用于设置全局日志级别,monitorInterval属性用于指定log4j2监视配置文件变化的时间间隔。
2. 配置日志级别```xml<Loggers><Root level="debug"><AppenderRef ref="Console"/><AppenderRef ref="File"/></Root></Loggers>```在<Loggers>节点下,可以通过<Root>节点配置全局日志级别,并通过<AppenderRef>节点引用Appenders进行输出。
log4j流量特征的特征字符
log4j流量特征的特征字符
log4j是Java语言的一个开源日志记录工具,流量特征是指使
用log4j记录的日志中可以提取出的特征信息。
下面是一些
log4j流量特征的特征字符的例子:
1. 时间戳:记录日志的时间点,格式通常为年月日时分秒。
2. 日志级别:记录日志的严重程度,包括DEBUG、INFO、WARN、ERROR等。
3. 线程ID:记录生成该日志的线程的唯一标识符。
4. 类名:记录生成该日志的Java类名。
5. 方法名:记录生成该日志的Java方法名。
6. 消息内容:记录具体的日志信息。
7. 异常信息:如果日志是由异常触发的,记录异常的详细信息。
8. 主机IP:记录生成该日志的主机的IP地址。
9. 请求参数:如果日志是在处理网络请求时生成的,记录请求的参数。
10. 响应码:记录网络请求的响应状态码。
这些特征字符可以帮助开发人员分析和调试代码,同时也可以用于监控系统的运行状况和故障诊断。
log4j中文手册
Log4j手册文档版本:1.1编者:陈华联系方式:clinker@发布日期:2006年4月5日1. 简介 (1)1. 简介 (3)1.1 概述 (3)1.2 主要组件 (3)2. Logger (4)2.1 层次结构 (4)2.2 输出级别 (5)3. Appenders (7)3.1 概念说明 (7)3.2 Appender的配置 (7)3.3 Appender的添加性 (8)4. Layouts (8)4.1 概念说明 (8)4.2 Layout的配置 (9)5. 配置 (10)6. 默认的初始化过程 (13)7. 配置范例 (14)7.1 Tomcat (14)8. Nested Diagnostic Contexts (14)9. 优化 (15)9.1 日志为禁用时,日志的优化 (15)9.2 当日志状态为启用时,日志的优化 (16)9.3 日志信息的输出时,日志的优化 (16)10. 总结 (16)11. 附录 (17)11.1 参考文档 (17)11.2 比较全面的配置文件 (17)11.3 日志乱码的解决 (19)1. 简介1.1 概述程序开发环境中的日志记录是由嵌入在程序中以输出一些对开发人员有用信息的语句所组成。
例如,跟踪语句(trace),结构转储和常见的System.out.println或printf调试语句。
log4j提供分级方法在程序中嵌入日志记录语句。
日志信息具有多种输出格式和多个输出级别。
使用一个专门的日志记录包,可以减轻对成千上万的System.out.println语句的维护成本,因为日志记录可以通过配置脚本在运行时得以控制。
log4j维护嵌入在程序代码中的日志记录语句。
通过规范日志记录的处理过程,一些人认为应该鼓励更多的使用日志记录并且获得更高程度的效率。
1.2 主要组件Log4j有三个主要组件: loggers、appenders和layouts。
这三个组件协同工作,使开发人员能够根据消息类型和级别来记录消息,并且在程序运行期控制消息的输出格式位置。
log4j level级别
log4j level级别log4j是Java中非常流行的日志框架,它支持不同级别的日志记录,以便开发人员精确地控制日志输出的数量和详细程度。
本文将重点介绍log4j的级别级别。
log4j的级别级别共有7个,分别是OFF、FATAL、ERROR、WARN、INFO、DEBUG和TRACE。
级别从高到低依次排列,并具有相应的优先级。
下面我们来逐一介绍这些级别:第一个级别是OFF,它表示关闭了所有日志记录。
如果将日志级别设置为OFF,则log4j将不会记录任何日志消息。
第二个级别是FATAL,它表示严重错误的消息。
该级别适用于系统遇到致命错误时输出的信息。
如果出现FATAL级别的日志消息,则表示系统出现了无法恢复的错误。
第三个级别是ERROR,它表示错误的消息。
当程序遇到错误时,可以使用该级别输出一些错误信息,以便进行调试和修复。
第四个级别是WARN,它表示警告的消息。
如果程序遇到一些可能会导致错误的情况,可以使用该级别输出警告信息,以便进行预防和处理。
第五个级别是INFO,它表示一般信息的消息。
该级别输出的消息通常是记录程序运行状态等重要信息的。
第六个级别是DEBUG,它表示调试信息的消息。
该级别输出的消息通常是记录程序运行过程中的详细信息,以便进行调试和排除问题。
最后一个级别是TRACE,它表示跟踪信息的消息。
该级别输出的消息是最详细的,包括程序运行过程中的每个细节。
在log4j中,我们可以使用以下方式设置级别:logger.setLevel(Level.ERROR);其中,logger是一个实例化的Logger对象,Level.ERROR表示设置日志级别为ERROR,也可以设置为其他级别。
在开发过程中,我们应该根据实际情况选择适当的日志级别,以便更好地控制日志输出的数量和详细程度。
例如,在开发初期,我们可以将日志级别设置为DEBUG或TRACE,以便更好地跟踪程序运行过程中的每个细节;在发布后,我们可以将日志级别设置为INFO或WARN,以便更好地控制日志输出的数量和详细程度。
log4j教程
Log4j学习笔记一、log4j的简介1、为什么使用日志◆开发阶段使用日志:发现程序的问题,排错◆产品阶段使用日志:记录运行的状况,发现bug并解决2、System.out.println的局限性◆不能在运行时打开或关闭打印功能◆不能指定选择包或类◆不能输出分级的信息◆只能输出文本信息,不能保存到文件或数据库◆不能改变输出的位置,只能打印到屏幕3、log4j的简介◆log4j是当前最流行的java日志处理框架◆Apache的子项目◆开源软件二、log4j的下载和安装/log4j◆log4j有3个版本:1.2 最常用的版本;1.3 已终止的版本;2.0 实验型的版本◆因此,我们下载log4j 1.2 ,点击以上”log4j”菜单,在弹出页面的左上角点击”download”,下载对应的log4j压缩包(例如:apache-log4j-1.2.16.zip),然后解压(最好将所有相关类库统一存放在一个目录下,例如:d:\javalib)◆将解压后的log4j-1.2.16.jar文件添加到当前项目的classpath中。
三、log4j的基本使用import org.apache.log4j.*;public class HelloLog4j{private static Logger logger=Logger.getLogger(HelloLog4j.class);public static void main(String [] args){logger.debug(“this is the main method”);(“welcome to first log4j”);logger.error(“This is an error message”)}}运行这个例子,需要log4j.properties,log4j.properties的配置如下:log4j.rootLogger=debug,appender1 //设定log4j的级别和appenderlog4j.appender.appender1=org.apache.log4j.ConsoleAppender//appender的类型(终端)yout=org.apache.log4j.TTCCLayout //样式(普通TTCC)log4j.rootLogger=info.appender2 //级别为infolog4j.appender.appender2=org.apache.log4j.FileAppender //appender保存到文件log4j.appender.appender2.File=c:/log4j.log 或c:/log4j.htm //文件名(可以是html)yout=org.apache.log4j.TTCCLayout或HTMLLayout 可以使用HTML样式四、log4j的核心log4j的核心由以下4个部件组成:⏹Logger:完成日志信息的处理⏹Appender:设置日志信息的去向⏹Layout:设置日志信息的输出样式⏹配置文件:配置以上信息(log4j.properties或log4j.xml,名称可以改变)1、Logger◆Logger可以定义输出的层次和决定信息的输出级别(怎样的信息可以输出)◆Logger输出的信息主要有以下8种:All,TRACE,DEBUG,INFO,WARN,ERROR,FATAL,OFF我们主要使用:DEBUG,INFO,WARN,ERROR4种◆Logger输出信息的级别:All<TRACE<DEBUG<INFO<WARN<ERROR<FATAL<OFF◆如果我们指定了输出的级别,则只能输出大于等于指定级别的信息,例如:我们指定输出级别为:INFO,则只能输出INFO ,W ARN,ERROR,FATAL,OFF级别的信息◆在程序中,我们可以使用Logger定义的方法进行对应级别信息的输出:logger.debug(“x=”+x);(“System started at ”+new Date());logger.warn(“server down - returning”);logger.error(“can not access server”,e);2、Appender◆Appender可以定义为日志添加器,可以指定将日志信息输出到哪里。
log4j占位符写法
log4j占位符写法`log4j` 是一个Java 中用于记录日志的库。
在`log4j` 中,占位符通常用于格式化日志消息,以便将动态值插入到日志中。
占位符的写法与其他日志库(如`SLF4J`)类似。
`log4j` 中常用的占位符是`%` 符号后跟一个字符。
以下是一些常见的占位符及其用法:1. `%m`:输出消息。
```javalogger.debug("This is a debug message: {}", dynamicValue);```2. `%p`:输出日志级别。
```java("This is an {} message", "info");```3. `%t`:输出线程名。
```javalogger.warn("This message is logged by thread: {}", Thread.currentThread().getName());```4. `%c`:输出日志记录器的名称。
```javalogger.error("Logged by logger: {}", logger.getName());```5. `%d{format}`:输出日期和时间。
`{format}` 中可以指定日期的格式。
```java("Current time: {}", new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(new Date()));```6. `%n`:输出平台特定的换行符。
```javalogger.debug("First line{}Second line", System.getProperty("line.separator"));```7. `%x`:输出线程的NDC(Nested Diagnostic Context)。
mybatis整合log4j
首先,我必须申明一点,这个文档针对于两种情况1,mybatis项目内加了SFT4jar包的情况2,mybatis项目没有加sft4.jar包的情况因为第二种情况,实现起来比较简单,所以先讲第二种,[请耐心看完,亲]第一步,在项目的SRC下放一个log4j.xml或者log4j.properties因为log4j有两种配置,Log4j.xml优先级比log4j.properties的高,所以,两个你要是闲的没事的话,都加进去,肯定是按照log4j.xml的方式,打印日志第二步,在lib下加入log4j-1.2.15.jar,版本那就看你自己的了第三步,在类里面写下这句话//此处是配置private final Logger log = Logger.getLogger(PsnFindAction.class);红色的是我的类名,别什么都抄!!!你写你自己的类名好了,讲完了表急着,复制,Log4j.xml和log4j.properties还没有给你,在最后面,现在讲第二种情况第一步,在项目的SRC下放一个log4j.xml或者log4j.properties此处,不细讲,上面讲过一次了,亲第二步,在lib下加入log4j-1.2.15.jar,版本那就看你自己的了别急,还有一个包slf4j-log4j12-1.6.4.jar这个是整合的,也就是说,mybatis里面有一个,灰常灰常垃圾的sft4j的日志功能,屏蔽了log4j,所以你配置没用。
在此鄙视一下。
第三步,在类里面写下这句话//此处是配置privatefinal Logger log = LoggerFactory.getLogger(PsnFindAction.class);红色的是我的类名,别什么都抄!!!你写你自己的类名和上面的不一样,import org.slf4j.*;因为他导入了这个,之前的那个呢import org.apache.log4j.Logger;导入的是这个,明白为什么了吗反正我明白了,讲完了,在mybatis的sql打印上,反复不行的,童鞋,请一定给个好评!写个文章不容易啊!Log4j.xml<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE log4j:configuration SYSTEM "log4j.dtd"><log4j:configuration xmlns:log4j="/log4j/" de bug="false"><appender name="CONSOLE" class="org.apache.log4j.ConsoleAppender"><layout class="org.apache.log4j.PatternLayout"><param name="ConversionPattern" value="[%d{dd/MM/yy hh:mm:ss:sss z}] %5p %c{2}: %m%n" /></layout></appender><appender name="FILE" class="org.apache.log4j.RollingFileAppender"><param name="file" value="${user.home}/foss-framework.log" /><param name="append" value="true" /><param name="maxFileSize" value="10MB" /><param name="maxBackupIndex" value="100" /><layout class="org.apache.log4j.PatternLayout"><param name="ConversionPattern" value="%d [%t] %-5p %C{6} (%F:%L) - %m%n" /> </layout></appender><appender name="framework"class="ponents.logger.BufferedAppender"><layout class="org.apache.log4j.PatternLayout"><param name="ConversionPattern" value="[%d{dd/MM/yy hh:mm:ss:sss z}] %5p %c{2}: %m%n" /></layout></appender><!-- 下面是打印mybatis语句的配置--><logger name="com.ibatis" additivity="true"><level value="DEBUG" /></logger><logger name="java.sql.Connection" additivity="true"><level value="DEBUG" /></logger><logger name="java.sql.Statement" additivity="true"><level value="DEBUG" /></logger><logger name="java.sql.PreparedStatement" additivity="true"><level value="DEBUG" /></logger><logger name="java.sql.ResultSet" additivity="true"><level value="DEBUG" /></logger><root><level value="INFO" /><appender-ref ref="CONSOLE" /><appender-ref ref="FILE" /><appender-ref ref="framework" /></root></log4j:configuration>log4j.properties# Rules reminder:# DEBUG < INFO < WARN < ERROR < FATAL# Global logging configurationlog4j.rootLogger=debug, stdout,RollingFile.apache.ibatis=debug,stdoutlog4j.logger.java.sql=debug,stdout# My logging configuration....baoku=DEBUG.apache.ibatis=ERRORlog4j.appender.stdout=org.apache.log4j.ConsoleAppenderyout=org.apache.log4j.PatternLayoutyout.ConversionPattern=%5p %d %C: %m%n#mybatis logger config.ibatis=ERROR.apache.ibatis.jdbc.ScriptRunner=ERRORlog4j.logger.java.sql.Connection=DEBUG#log4j.logger.java.sql.Statement=DEBUGlog4j.logger.java.sql.PreparedStatement=DEBUG,stdout#RollingFilelog4j.appender.RollingFile=org.apache.log4j.DailyRollingFileAppenderlog4j.appender.RollingFile.File=logs/new-crm.logyout=org.apache.log4j.PatternLayoutyout.ConversionPattern=%d [%t] %-5p [%c] - %m%n最后一句话,最好是用log4j.xmlPS[QQ:625506370]佩子。
使用Log4j如何实现分级输出
log4j日志分级输出到不同文件的配置基础:log4j的配置项说明:log4j总共有6中级别,从高到低分别为:OFF、FATAL、ERROR、WARN、INFO、DEBUG、ALL或者您定义的级别。
Log4j建议只使用四个级别,优先级从高到低分别是ERROR、WARN、INFO、DEBUG。
其中:DEBUG Level 指出细粒度信息事件对调试应用程序是非常有帮助的。
INFO level表明消息在粗粒度级别上突出强调应用程序的运行过程。
WARN level表明会出现潜在错误的情形。
ERROR level指出虽然发生错误事件,但仍然不影响系统的继续运行。
FATAL level指出每个严重的错误事件将会导致应用程序的退出。
ALL Level是最低等级的,用于打开所有日志记录。
OFF Level是最高等级的,用于关闭所有日志记录。
# log4j.rootLogger中配置的ERROR,表示一下配置的所有配置的级别的起点为:ERROR。
即只能显示、存储ERROR以及ERROR以上级别的日志# 若在此配置了ERROR,下边配置了INFO级别的日志要存储在指定的文件中,实际是不会存储的# 若配置INFO级别的日志存在文件1中,ERROR级别的文件,存在文件2中,# 若有个ERROR的日志的话,两个文件都是可以存储的;若有个INFO 级别的文件的话,则只有文件1会存储该日志,文件2是不会存储的日志的输出格式配置:# %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 输出日志事件的发生位置,包括类目名、发生的线程,以及在代码中的行数。
log4j.xml配置文件详解
log4j.xml配置⽂件详解⼀ log4j.xml 配置<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE log4j:configuration SYSTEM "log4j.dtd"><log4j:configuration><!-- 将⽇志信息输出到控制台 --><appender name="ConsoleAppender" class="org.apache.log4j.ConsoleAppender"><!-- 设置⽇志输出的样式 --><layout class="org.apache.log4j.PatternLayout"><!-- 设置⽇志输出的格式 --><param name="ConversionPattern" value="[%d{yyyy-MM-dd HH:mm:ss:SSS}] [%-5p] [method:%l]%n%m%n%n" /></layout><!--过滤器设置输出的级别--><filter class="org.apache.log4j.varia.LevelRangeFilter"><!-- 设置⽇志输出的最⼩级别 --><param name="levelMin" value="WARN" /><!-- 设置⽇志输出的最⼤级别 --><param name="levelMax" value="ERROR" /><!-- 设置⽇志输出的xxx,默认是false --><param name="AcceptOnMatch" value="true" /></filter></appender><!-- 将⽇志信息输出到⽂件,但是当⽂件的⼤⼩达到某个阈值的时候,⽇志⽂件会⾃动回滚 --><appender name="RollingFileAppender" class="org.apache.log4j.RollingFileAppender"><!-- 设置⽇志信息输出⽂件全路径名 --><param name="File" value="D:/log4j/RollingFileAppender.log" /><!-- 设置是否在重新启动服务时,在原有⽇志的基础添加新⽇志 --><param name="Append" value="true" /><!-- 设置保存备份回滚⽇志的最⼤个数 --><param name="MaxBackupIndex" value="10" /><!-- 设置当⽇志⽂件达到此阈值的时候⾃动回滚,单位可以是KB,MB,GB,默认单位是KB --><param name="MaxFileSize" value="10KB" /><!-- 设置⽇志输出的样式 --><layout class="org.apache.log4j.PatternLayout"><!-- 设置⽇志输出的格式 --><param name="ConversionPattern" value="[%d{yyyy-MM-dd HH:mm:ss:SSS}] [%-5p] [method:%l]%n%m%n%n" /></layout></appender><!-- 将⽇志信息输出到⽂件,可以配置多久产⽣⼀个新的⽇志信息⽂件 --><appender name="DailyRollingFileAppender" class="org.apache.log4j.DailyRollingFileAppender"><!-- 设置⽇志信息输出⽂件全路径名 --><param name="File" value="D:/log4j/DailyRollingFileAppender.log" /><!-- 设置⽇志每分钟回滚⼀次,即产⽣⼀个新的⽇志⽂件 --><param name="DatePattern" value="'.'yyyy-MM-dd-HH-mm'.log'" /><!-- 设置⽇志输出的样式 --><layout class="org.apache.log4j.PatternLayout"><!-- 设置⽇志输出的格式 --><param name="ConversionPattern" value="[%d{yyyy-MM-dd HH:mm:ss:SSS}] [%-5p] [method:%l]%n%m%n%n" /></layout></appender>⼆配置的其他说明(1). 输出⽅式appender⼀般有5种:org.apache.log4j.RollingFileAppender(滚动⽂件,⾃动记录最新⽇志)org.apache.log4j.ConsoleAppender (控制台)org.apache.log4j.FileAppender (⽂件)org.apache.log4j.DailyRollingFileAppender (每天产⽣⼀个⽇志⽂件)org.apache.log4j.WriterAppender (将⽇志信息以流格式发送到任意指定的地⽅)(2). ⽇记记录的优先级priority,优先级由⾼到低分为OFF ,FATAL ,ERROR ,WARN ,INFO ,DEBUG ,ALL。
log4j pattern 表达式
log4j pattern 表达式log4j pattern是一种用于日志输出格式化的表达式,它可以帮助开发人员更好地理解和分析日志信息。
在实际的开发中,我们经常需要使用log4j来记录应用程序的运行状态,以便于后期的排查和分析。
通过合理的使用log4j pattern,我们可以将日志信息的关键部分进行提取和展示,从而更好地理解应用程序的行为。
在使用log4j pattern时,我们需要注意以下几点,以确保输出的日志信息符合我们的需求:1. 不要输出http地址在应用程序中,我们可能会调用外部的http接口,这时候日志中可能会包含http请求的URL地址。
然而,在输出日志时,为了保护用户的隐私和敏感信息,我们应该避免将http地址直接输出到日志中。
可以通过使用log4j pattern中的一些特定的格式化符号,如%replace来替换或隐藏URL地址的敏感部分,以确保日志信息的安全性。
2. 不要输出公式在应用程序中,我们可能会进行一些数学计算或运算,这时候日志中可能会包含一些公式或计算式。
然而,在输出日志时,我们应该避免直接将这些公式或计算式输出到日志中,以免造成误解或歧义。
可以通过使用log4j pattern中的一些特定的格式化符号,如%msg来输出计算结果或相关的描述信息,以便于理解和分析。
3. 内容不能重复在日志输出中,我们应该尽量避免重复输出相同的信息。
重复的日志信息会浪费存储空间和读取时间,并且会给后期的日志分析带来困扰。
可以通过使用log4j pattern中的一些特定的格式化符号,如%notEmpty来判断日志信息是否为空,从而避免重复输出相同的信息。
4. 整体格式规范整洁在使用log4j pattern时,我们应该保持整体格式的规范整洁,以便于阅读和理解。
可以通过合理的使用缩进、换行和空格等排版方式,使日志信息的层次结构清晰可见。
同时,可以使用恰当的段落和标题,使文章结构清晰,易于阅读。
Log4j不同模块输出到不同的文件中
Log4j不同模块输出到不同的⽂件中1、实现⽬标 不同业务的⽇志信息需要打印到不同的⽂件中,每天或者每个⼩时⽣成⼀个⽂件。
如,注册的信息打印到register.log,每天凌晨⽣成⼀个register-年⽉⽇.log⽂件,登录信息的⽇志打印到⼀个login.log⽂件中,login-年⽉⽇.log。
2、maven配置<?xml version="1.0" encoding="UTF-8"?><project xmlns="/POM/4.0.0"xmlns:xsi="/2001/XMLSchema-instance"xsi:schemaLocation="/POM/4.0.0 /xsd/maven-4.0.0.xsd"><modelVersion>4.0.0</modelVersion><groupId>test</groupId><artifactId>common</artifactId><version>1.0-SNAPSHOT</version><dependencies><dependency><groupId>org.slf4j</groupId><artifactId>slf4j-api</artifactId><version>1.7.6</version></dependency><dependency><groupId>org.slf4j</groupId><artifactId>slf4j-log4j12</artifactId><version>1.7.6</version></dependency></dependencies></project>3、配置⽂件 默认情况下,log4j会解析src/main/resources/log4j.properties⽂件,下⾯是log4.properties⽂件中的内容。
log4j conversionpattern 时区
log4j conversionpattern 时区下载温馨提示:该文档是我店铺精心编制而成,希望大家下载以后,能够帮助大家解决实际的问题。
文档下载后可定制随意修改,请根据实际需要进行相应的调整和使用,谢谢!并且,本店铺为大家提供各种各样类型的实用资料,如教育随笔、日记赏析、句子摘抄、古诗大全、经典美文、话题作文、工作总结、词语解析、文案摘录、其他资料等等,如想了解不同资料格式和写法,敬请关注!Download tips: This document is carefully compiled by the editor. I hope that after you download them, they can help you solve practical problems. The document can be customized and modified after downloading, please adjust and use it according to actual needs, thank you!In addition, our shop provides you with various types of practical materials, such as educational essays, diary appreciation, sentence excerpts, ancient poems, classic articles, topic composition, work summary, word parsing, copy excerpts, other materials and so on, want to know different data formats and writing methods, please pay attention!在软件开发中,日志记录是一项至关重要的功能。
log4j logger name 正则
log4j logger name 正则
在 Log4j 中,Logger 的名称通常用于标识记录日志的实体。
Logger 的名称可以由用户自定义,因此并没有一个固定的正则表达式来匹配所有的 Logger 名称。
不过,一般来说,Logger 的名称应该具有描述性,以便于理解其用途和上下文。
如果你想要使用正则表达式来匹配或限制 Logger 名称,你可以根据实际需求编写一个正则表达式。
以下是一个示例正则表达式,用于匹配以特定字符串开头并以特定字符串结尾的 Logger 名称:
ruby
^prefix\.([a-zA-Z0-9_]+)\.suffix$
这个正则表达式的含义是:以 "prefix." 开头,然后是任意字母、数字或下划线组成的字符串,并以 ".suffix" 结尾。
你可以根据实际需求修改这个正则表达式,以满足特定的匹配规则。
需要注意的是,这个正则表达式只是一个示例,并不能保证涵盖所有可能的 Logger 名称。
因为 Logger 的名称是由用户自定义的,可以包含任何字符和格式。
因此,如果你需要更精确地匹配或限制 Logger 名称,你可能需要根据实际情况编写更复杂的正则表达式。
另外,如果你想限制 Logger 名称的长度,你可以使用正则表达式的数量限定符来指定长度范围。
例如,以下正则表达式将匹配长度在 6 到 12 个字符之间的 Logger 名称:ruby
^.{6,12}$
这个正则表达式的含义是:匹配任意长度为 6 到 12 个字符的字符串。
你可以根据实际需求修改这个正则表达式,以满足特定的长度要求。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
Log4j使用Log4J进行日志操作Log4J是Apache的一个开放源代码项目,它是一个日志操作包,通过使用Log4J,可以指定日志信息输出的目的地,如控制台、文件、CUI组件、NT的事件记录器;还可以控制每一条日志输出格式。
此外,通过定义日志信息的级别,能够非常细致地控制日志的输出,最令人感兴趣的是,这些功能可以通过一个配置文件来灵活进行配置,而不需要修改应程序代码。
在应用程序中输出日志有3个目的:●监视代码中变量的变化情况,把数据周期性记录到文件中供其他应用进行统计分析工作●跟踪代码运行时轨迹,作为日后审计的依据●担当集成开发环境中的调试器的作用,向文件和控制台打印代码的调试信息要在程序中输出日志,最普通的做法就是在代码中嵌入语句,这些打印语句可以把日志输出到控制台或文件中,比较好的做法就是构造一个日志操作类来封装此类操作,而不是让一系列的打印语句充斥代码的主体。
在进入学习Log4J之前,我们要了解通用日志包中的两个常用接口LogFactory和Log,下面分别介绍它们的用法。
(一)Log接口通用日志包把日志消息分为6种级别:FATAL(致命的)、ERROR(错误)、WARN(警告)、INFO(信息)、DEBUG(调试)和TRACE(细节)。
其中FATAL级别最高,TRACE级别最低。
通用日志包采用日志级别机制,可以灵活的控制输出的日志内容。
mons.logging.Log接口代表日志器,它提供了一组输出日志的方法:●fatal(Object message): 输出FATAL级别的日志消息。
●error(Object message): 输出ERROR级别的日志消息。
●……●trace(Object message): 输出TRACE级别的日志消息。
对于以上输出日志的方法,只有当它输出日志的级别大于或等于为日志其配置的日志级别时,这个方法才会被真正执行。
例如,如果日志器的日志级别为WARN,那么在程序中,它的fatal()、error()和warn()方法会被执行,而info()、debug()和trace()方法不会被执行。
Log接口还提供了一组判断是否允许输出特定级别的日志消息的方法:●isFatalEnabled()●isErrorEnabled()●……●isTraceEnabled()在程序输出某种级别的日志消息之前,提倡先调用以上方法来判断该级别的日志是否允许输出,这有助于提高应用的性能。
例如以下代码先把日志消息添加到StringBuffer中,最后在调用日志器的debug()方法输出日志:StringBuffer buf = new StringBuffer();buf.append(“Login Successsul - ”);buf.append(“Name:”);buf.append(username);log.debug(buf.toString());对于以上代码,如果日志器实际上不允许输出DEBUG级别的日志,那么执行日志器的debug()方法不会输出任何消息,此时向StringBuffer中添加消息的一大串操做都将是多余的。
为了提高性能,可以合理的使用isDebugEnabled()方法,避免应用执行多余的操作:if(log.isDebugEnabled){StringBuffer buf = new StringBuffer();buf.append(“Login Successsul - ”);buf.append(“Name:”);buf.append(username);log.debug(bug.toString());}(二)LogFactory接口mons.logging.LogFactory接口提供了获得日志器实例的两个静态方法:public static Log getLog(String name)throws LogConfigurationException;public static Log getLog(Class class) throws LogConfigurationException;第一个getLog()方法以name参数作为日志器的名字;第二个getLog()方法以class参数指定的类的名字作为日志器的名字,以下是第二个getLog()方法的一种实现方式:public static Log getLog(Class class) throws LogConfigurationException{getLog(class.getName); //call getLog(String name)}Log4J简介在强调可重用组件的今天,除了自己从头到尾开发一个可重用的日志操作类名,Apache为我们提供了一个强有力的现成的日志操作包Log4J。
Log4J主要由三大组件构成:●Logger:负责生成日志,并能够对日志信息进行分类筛选,通俗地讲就是决定什么日志信息应该输出,什么日志信息应该被忽略●Appender:定义了日志信息输出的目的地,指定日志信息应该被输出到什么地方,这些地方可以是控制台、文件、网络设备等●Layout: 指定日志信息的输出格式这个3个组件协同工作,使得开发者能够依据日志信息类别记录信息,并能够在程序运行期间,控制日志信息的输出格式以及日志存放地点。
一个Logger可以有多个Appender,这意味着日志信息可以同时输出到多个设备上,每个Appender都对应一种Layout,Layout决定了输出日志信息的格式。
假定根据实际需要,要求程序中的日志信息既能输出到程序运行的控制台下,又能输出到指定的文件中,并且当日志信息输出到控制台时SimplLayout布局,当日志信息输出到文件时PatternLayout布局,此时Logger、Appender和Layout3个组件的关系如图Appender组件Log4J的Appender组件决定将日志信息输出到什么地方。
日前Log4J的Appender支持将日志信息输出到以下的目的:●控制台(Console)●文件●GUI组件一个logger可以同时对应多个Appender,也就是说,一个Logger的日志信息可以同时输出到多个目的地,例如:要为rootLogger配置两个Appender;一个是file,一个是console,则可以采用如下配置代码:Lay out组件Layout组件用来决定日志的输出格式,它有以下几种类型●org.apache.log4j.HTMLLayout(以HTML表格形式布局)●org.apache.log4j.PatternLayout(可以灵活地指定布局模式)●org.apache.log4j.SimpleLayout(包含日志信息级别和信息字符串)●org.apache.log4j.TTCCLayout(包含日志产生的时间、线程和类别等信息)Log4J的基本使用方法在应用程序中使用Log4J,首先在一个配置文件中配置Log4j的各个组件,然后就可以在程序中通过Log4JAPI来操作日志定义配置文件Log4J由3个重要的组件构成:Logger、Appender和layout。
Log4J支持在程序中以编程的方式设置这些组件,还支持通过配置文件来配置组件,后一种方式更为灵活。
Log4J支持两种配置文件格式,一种是XML格式,一种是Java属性文件,1. 配置Logger组件其语法为:log4j.rootLogger = [ level ] , appenderName1, appenderName2, …level : 是日志记录的优先级,分为OFF、FATAL、ERROR、WARN、INFO、DEBUG、ALL或者您定义的级别。
Log4j建议只使用四个级别,优先级从高到低分别是ERROR、WARN、INFO、DEBUG。
通过在这里定义的级别,您可以控制到应用程序中相应级别的日志信息的开关。
比如在这里定义了INFO级别,则应用程序中所有DEBUG级别的日志信息将不被打印出来。
appenderName:就是指定日志信息输出到哪个地方。
您可以同时指定多个输出目的地。
All:打印所有日志。
Off:关闭所有的日志。
例如:log4j.rootLogger=info,A1,B2,C32. 配置Appender组件其语法为:log4j.appender.appenderName =.of.appender.class.".of.appender.class" 可以指定下面五个目的地中的一个:.apache.log4j.ConsoleAppender(控制台).apache.log4j.FileAppender(文件).apache.log4j.DailyRollingFileAppender(每天产生一个日志文件).apache.log4j.RollingFileAppender(文件大小到达指定尺寸的时候产生一个新的文件).apache.log4j.WriterAppender(将日志信息以流格式发送到任意指定的地方)A.ConsoleApp end er选项Threshold=WARN:指定日志消息的输出最低层次。
ImmediateFlush=true:默认值是true,意谓着所有的消息都会被立即输出。
Target=System.err:默认情况下是:System.out,指定输出控制台B.FileAppender 选项Threshold=WARN:指定日志消息的输出最低层次。
ImmediateFlush=true:默认值是true,意谓着所有的消息都会被立即输出。
File=mylog.txt:指定消息输出到mylog.txt文件。
Append=false:默认值是true,即将消息增加到指定文件中,false指将消息覆盖指定的文件内容。
C.DailyRollingFileAppender 选项Threshold=WARN:指定日志消息的输出最低层次。
ImmediateFlush=true:默认值是true,意谓着所有的消息都会被立即输出。
File=mylog.txt:指定消息输出到mylog.txt文件。
Append=false:默认值是true,即将消息增加到指定文件中,false指将消息覆盖指定的文件内容。
DatePattern='.'yyyy-ww:每周滚动一次文件,即每周产生一个新的文件。
当然也可以指定按月、周、天、时和分。
即对应的格式如下:1)'.'yyyy-MM: 每月2)'.'yyyy-ww: 每周3)'.'yyyy-MM-dd: 每天4)'.'yyyy-MM-dd-a: 每天两次5)'.'yyyy-MM-dd-HH: 每小时6)'.'yyyy-MM-dd-HH-mm: 每分钟D.RollingFileA ppender 选项Threshold=WARN:指定日志消息的输出最低层次。