【IT专家】Log4j关闭Spring和Hibernate日志打印
- 格式:pdf
- 大小:108.19 KB
- 文档页数:1
log4j的使用方法log4j的使用方法什么是log4jlog4j是一个使用Java编写的开源日志记录工具。
它允许开发人员在程序中进行灵活的日志记录,帮助定位和修复应用程序的错误和问题。
log4j通过配置文件确定日志记录的级别和输出方式,提供了丰富的功能和灵活性。
log4j的基本配置1.导入log4j的依赖库:添加以下依赖到你的项目中的``文件中:<dependency><groupId>log4j</groupId><artifactId>log4j</artifactId><version></version></dependency>2.创建log4j的配置文件:在项目的资源目录下创建一个名为``的文件,并添加以下内容:# 设置日志输出到控制台=INFO, stdout# stdout将日志输出到控制台====%d{yyyy-MM-dd HH:mm:ss} [%p] %m%n以上配置将日志记录级别设为INFO,并将日志输出到控制台。
3.初始化log4j:在你的应用程序入口处(比如main方法),添加以下代码进行log4j的初始化:import ;public class MyApp {public static void main(String[] args) {// 加载log4j的配置文件("");// 其他应用程序代码...}}log4j的日志级别与日志输出log4j提供了不同的日志级别,根据不同的需求可以进行设置。
1.日志级别:–TRACE:最详细的日志级别,常用于调试信息。
–DEBUG:用于调试和开发阶段的详细信息。
–INFO:提供程序的运行状态信息以及其他关键事件。
–WARN:表明潜在的问题,但程序仍能正常运行。
–ERROR:用于记录错误事件,但仍可继续执行。
–FATAL:严重错误,可能导致程序终止执行。
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 设置为保存一个备份文件。
使⽤log4j2打印Log,log4j不能打印⽇志信息,log4j2不能打印⽇志信息,lo。
说来惭愧,今天就写了个"hello world",了解了⼀下log4j的⽇志。
本来是想在控制台打印个log信息,也是遇到坎坷重重,开始也没去了解log4j就来使⽤,log4j配置⽂件开始⽤的log4j.properties,结果控制台⼀直打印ERROR StatusLogger No log4j2 configuration file found.也就是Log4j2配置⽂件没找到的意思。
我就把log4j.properties⽂件名改成log4j2.properties,结果不报错了,但是就是不打印⽇志,直接就结束运⾏了(Process finished with exit code 0),现在想想好愚蠢啊。
后来经过百般折腾,发现log4j是log4j,log4j2是log4j2,不能混⽤啊,但它们都是出⾃同⼀个公司,log4j2顾名思义是第⼆代,是log4j的优化升级版。
log4j的配置⽂件是log4j.properties,是以.properties后缀名结尾的⽂件命名,⽽log4j2的配置⽂件⼀般是xml⽂件或json,以.xml或.json 后缀格式的命名,log4j更新到1.2.17版就停⽌了更新,发布了Log4j2; 我加⼊的jar包⼀直是log4j2的jar包,开始使⽤了log4j的配置⽂件(log4j.properties),所以⼀直打印不出来。
后来重新加⼊配置⽂件log4j2.xml后,就可以打印了。
maven的pom.xml⽂件中加⼊的依赖:加⼊log4j的实现和log4j核⼼包,如果版本号(version)在2.0以下,配置⽂件就是.properties了哦<!-- https:///artifact/org.apache.logging.log4j/log4j-slf4j-impl --><dependency><groupId>org.apache.logging.log4j</groupId><artifactId>log4j-slf4j-impl</artifactId><version>2.6.2</version></dependency><!-- https:///artifact/org.apache.logging.log4j/log4j-core --><dependency><groupId>org.apache.logging.log4j</groupId><artifactId>log4j-core</artifactId><version>2.6.2</version></dependency> 如果是springboot项⽬:需要排除⼀个logback的jar包,以免冲突: <dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-web</artifactId><exclusions><exclusion><!--log4j-slf4j-impl与 logback-classic包不兼容,删除这个包 --><groupId>ch.qos.logback</groupId><artifactId>logback-classic</artifactId></exclusion></exclusions></dependency> log4j2.xml⽂件:⽹上复制的⼀个,写的挺全,由于我只⽤到在控制台打印输出,所以我把没⽤到的都注释了。
Java开发日志分析工具Log4j使用详解Log4j是一个用于记录应用程序运行时日志的Java开发工具。
它可以帮助开发人员更好地理解和监控应用程序的运行状态,以及解决潜在的问题。
下面将详细介绍Log4j的使用方法和功能。
一、Log4j的配置文件Log4j使用一个名为log4j.properties的配置文件来定义日志的输出格式、日志级别、输出目标等。
这个配置文件需要放在应用程序的classpath下,以便Log4j能够找到它并加载配置。
配置文件中的每一个配置项都有一个特定的名称和对应的值。
例如,可以使用"log4j.rootLogger"配置项来设置根日志记录器的级别,使用"log4j.appender.console"配置项来设置控制台输出的格式等。
二、Log4j的日志级别Log4j提供了多个日志级别,用于控制日志的输出。
这些日志级别按照严重程度递增,包括TRACE、DEBUG、INFO、WARN、ERROR和FATAL。
可以通过配置文件中的"log4j.rootLogger"配置项来设置根日志记录器的级别,从而决定哪些级别的日志会被记录。
三、Log4j的输出目标Log4j可以将日志输出到不同的目标,包括控制台、文件、数据库等。
可以通过配置文件中的"log4j.appender"配置项来设置输出目标。
常用的输出目标有:1. ConsoleAppender:将日志输出到控制台。
2. FileAppender:将日志输出到文件。
3. RollingFileAppender:将日志输出到滚动文件,可以设置文件的大小和数量,以便自动滚动日志文件。
4. JDBCAppender:将日志输出到数据库。
四、Log4j的日志格式Log4j可以自定义日志的输出格式。
可以通过配置文件中的"log4j.appender"配置项来设置输出格式。
Log4j 使用参考规范目录简介 (3)1. 概述 (3)2. 库主件 (3)3. 主要组件 (3)配置 (4)1. 相关配置文件 (4)2. 详细配置说明 (5)3. 输出方式 (5)4. 输出格式 (6)调用 (7)注意问题 (7)参考文档 (8)1. 概述程序开发环境中的日志记录是由嵌入在程序中以输出一些对开发人员有用信息的语句所组成。
例如,跟踪语句(trace),结构转储和常见的System.out.println或printf调试语句。
log4j 提供分级方法在程序中嵌入日志记录语句。
日志信息具有多种输出格式和多个输出级别。
使用一个专门的日志记录包,可以减轻对成千上万的System.out.println 语句的维护成本,因为日志记录可以通过配置脚本在运行时得以控制。
log4j 维护嵌入在程序代码中的日志记录语句。
通过规范日志记录的处理过程,一些人认为应该鼓励更多的使用日志记录并且获得更高程度的效率。
五级输出,依次为DEBUG、INFO、WARN、ERROR、FATAL。
使用者可根据不同的需求,设定不同的输出级别,则得到不同级别的输出结果。
(在正式生产环境中,一般设定为 warn)2. 库主件目前log4j 2.0 版本需要JAVA5(logging services designed for Java 5 and later);1.3 版不被推荐使用,我们使用的最多的是1.2版。
目前可download 的是1.2.17 版。
下载地址:/dyn/closer.cgi/logging/log4j/库文件一般为名为log4j.jar, 使用时加入lib路径下。
3. 主要组件Log4j有三个主要组件:loggers、appenders和layouts。
这三个组件协同工作,使开发人员能够根据消息类型和级别来记录消息,并且在程序运行期控制消息的输出格式位置。
Logger:记录器;Logger 负责处理日志记录的大部分操作。
logback日志,及log4jdbc记录数据库日志--步骤这两天一直在研究logback日志记录,比我以前用的log4j的日志记录貌似更简单,更容易使用了。
所以决定了解一下logback,并将其使用在charm项目上。
之前两天一直都在弄这个logback日志。
但总是失败,很简单的jar包导进去了,测试文件写好了,但就是打印不出来日志。
还有一个更怪的问题。
日志文件夹和日志文件都给我创建出来了,但就是不能打印日志,控制台也不能够输出。
当时我用日志jar 包是:logback-access-0.9.14.jar logback-classic-0.9.14.jar logback-core-0.9.14.jar slf4j-api-1.5.6.jar 。
后来,换了几个jar包,就好使。
我之前在网上查过,logback的jar和slf4j-api的jar是要匹配的。
难道是这几个不匹配?可能是。
下面我们来看看好用的jar包:logback-classic-1.0.13.jar,logback-core-1.0.13.jar,slf4j-api-1.7.5.jar,这三个就足够了,具体可以看看/haidage/article/details/6794509,每一个节点都是什么含义。
====================================== =======================下面来描述下如何配置logback日志:1. 导入所需jar包:logback-classic-1.0.13.jar,logback-core-1.0.13.jar,slf4j-api-1.7.5.jar。
2. 写配置文件:logback.xml,放在根目录src下或者classpath 下。
logback.xml____________________________________________________logback.xml的源码文件在本片文章的最后,可以借鉴参考.第三步:编写测试文件。
log4j输出多个自定义日志文件log4j的强大功能无可置疑,但实际应用中免不了遇到某个功能需要输出独立的日志文件的情况,怎样才能把所需的内容从原有日志中分离,形成单独的日志文件呢?其实只要在现有的log4j基础上稍加配置即可轻松实现这一功能。
先看一个常见的log4j.properties文件,它是在控制台和myweb.log文件中记录日志:log4j.rootLogger=DEBUG, stdout, logfile.springframework=ERROR.apache=INFOlog4j.appender.stdout=org.apache.log4j.ConsoleAppenderyout=org.apache.log4j.PatternLayoutyout.ConversionPattern=%d %p [%c] - %m%nlog4j.appender.logfile=org.apache.log4j.RollingFileAppenderlog4j.appender.logfile.File=${myweb.root}/WEB-INF/log/myweb.loglog4j.appender.logfile.MaxFileSize=512KBlog4j.appender.logfile.MaxBackupIndex=5yout=org.apache.log4j.PatternLayoutyout.ConversionPattern=%d %p [%c] - %m%n如果想对不同的类输出不同的文件(以.Test为例),先要在Test.java中定义:private static Log logger = LogFactory.getLog(Test.class);然后在log4j.properties中加入:.Test= DEBUG, testlog4j.appender.test=org.apache.log4j.FileAppenderlog4j.appender.test.File=${myweb.root}/WEB-INF/log/test.logyout=org.apache.log4j.PatternLayoutyout.ConversionPattern=%d %p [%c] - %m%n也就是让.Test中的logger使用log4j.appender.test所做的配置。
Log4j笔记●为什么要使用日志⏹开发阶段可以发现程序的问题,排错⏹产品阶段可以记录程序运行的状况⏹Log4j就是一个简便的日志管理工具●System.out.println()的问题⏹不能在运行过程中打开或者关闭⏹不能有针对性地选择⏹输出的信息没有分级⏹只能输出文本信息⏹不能改变输出的位置Log4j可以解决以上的所有问题●log4j简介⏹是最流行的Java日志处理框架⏹Apache的子项目⏹开源●log4j的使用⏹需要从Apache官方网站上下载jar包⏹添加到项目的Build Path里⏹使用示例运行这个程序,需要log4j.properties文件warn是指输出的日志级别;大于等于这个级别的输出才会执行,小于此级别的不会输出;级别有8种,名称固定Console:输出的位置或者目的地,这个名字是别名,可以任意起名字在第二行针对这个目的地进行设置如果上面叫aaa第二行就是log4j.appender.aaa第三行可以设置输出目的地的一些配置信息,最常用的是输出的布局格式对于输出到文件,还需要在这个位置指定文件的路径log4j的核心●Logger完成日志信息的处理,可以定义输出的层次和决定信息是否输出输出的优先级顺序:ALL,TRACE,DEBUG,INFO,WARN,ERROR,FATAL,OFFALL<TRACE<DEBUG<INFO<WARN<ERROR<FATAL<OFF●Appender设置日志信息的去向,可以同时指定多个目的地。
log4j.appender.appenderName=Appender.classlog4j.appender.appenderName.optiona1=value1…log4j.appender.appenderName.optionaN=valueN常用的有如下:org.apache.log4j.ConsoleAppender 控制台org.apache.log4j.FileAppender 文件org.apache.log4j.DailyRollingFileAppender 每天产生一个日志文件org.apache.log4j.RollingFileAppender 文件尺寸到一定大小产生新文件org.apache.log4j.WriterAppender 将日志以流的方式发送org.apache.log4j.JdbcAppender 将日志保存到数据库●Layout设置日志信息的输出样式配置格式:yout=Layout.classyout.option=value常用:org.apache.log4j.HTMLLayout 以HTML表格形式布局org.apache.log4j.SimpleLLayout 包含日志级别和信息字符串org.apache.log4j.TTCCLayout 包含日志产生的时间,执行者,类别等org.apache.log4j.PatternLayout 灵活指定%p 输出优先级%r 输出自应用启动到输出信息所耗费的毫秒数%t 输出产生该日志事件的线程名%f 输出所属类名%c 输出类的全名称%d 输出日志产生时间或者日前,后面用{yyyy-MM-dd HH-mm-ss}指定%l 输出所处行号%m 具体信息%n 换行●配置文件⏹log4j.propertieslog4j.rootLogger=级别,去向。
浅谈JAVA中的日志文件log4的使用方法:log4是具有日志记录功能,主要通过一个配置文件来对程序进行监测有两种配置方式:一种程序配置,一种文件配置有三个主要单元要了解,Logger,appender,layout.logger是进行记录的主要类,appender是记录的方式,layout是记录的格式logger七种日志级别:debug,info,warn,error,fatal,all,off最常用的应该是debug()和info();而warn()、error()、fatal()仅在相应事件发生后才使用appender主要分三类,终端输出,文件输出,流输出ConsoleAppenderFileAppenderWriterAppenderlayout也分三类:简单格式,html格式,匹配格式SimpleLayoutHTMLLayoutPatternLayout输出简写:(用在PatternLayout)%m 输出代码中指定的消息%p 输出优先级%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 输出日志事件的发生位置,包括类目名、发生的线程,以及在代码中的行数。
一般使用了它就不需使用%c了[按照下面步骤来写吧!就可以得到我们所想要的日志文件哦!][按照顺序就可以将日志文件读出来了!]作用实例:程序配置一般过程:1.得到特定名称的logger2.得到其中一个layout3.根据layout得到appender4.logger添加appender5.logger设置级别6.logger输出有级别的日志信息程序:Logger logger = Logger.getLogger(Test.class.getName()) //取得loggerSimpleLayout simpleLayut = new SimpleLayout() //取得layoutFileAppender fa = new FileAppender(simpleLayout,"test.log") //取得ppenderlogger.addAppender(fa) //添加appenderlogger.set((Level)Level.DEBUG) //设置级别logger.debug("hihihihih") //记录信息文件配置过程:1.得到特定名称的logger2.加载配置文件 (配置文件做了2-5的工作)3.logger输出有级别的日志信息文件配置程序:1.Logger logger = Logger.getLogger(Test.class.getName()) //取得logger2.使用下面的配置加载3.输出信息文件配置分properties,xml读取properties:PropertyConfigurator.configure("logTest.properties");读取xml:DOMConfigurator.configure("src/logTest.xml");告别System.out.print()—J2SDK1.4新增Java日志框架(一)作为一名Java程序员,最熟悉的、使用最多的调用恐怕莫过于System.out.print(“…”)。