log4j配置之后报错如何解决?

(2)在javaweb项目中它放置的位置是在src目录下,因为这个时候tomcat会去默认的加载它的,不需要我们去手动的加载log4j的配置文件,只需要根据配置获取自己需要的logger实例即可,由此我们可以知道如果我们使用的不是tomcat容器的话,是不是需要自己手动加载或者至少要配置一下呢?比如使用Websphere等非apache...
log4j配置之后报错如何解决?
步骤:
1、在Maven的porn.xml 文件中添加dependency如下。之后就会添加三个包。

2、之后在项目下添加log4j.properties。

3、在web.xml中加入代码。

4、 使用方法。

5、接下来就能输出了。

6、输出如下。

下面是log4j.properties的配置信息:
1、#输出格式
2、#%m 输出代码中指定的消息
3、#%p 输出优先级,即DEBUG,INFO,WARN,ERROR,FATAL
4、#%r 输出自应用启动到输出该log信息耗费的毫秒数
5、#%c 输出所属的类目,通常就是所在类的全名
6、#%t 输出产生该日志事件的线程名
7、#%n 输出一个回车换行符,Windows平台为“\r\n”,Unix平台为“\n”
8、#%d 输出日志时间点的日期或时间,默认格式为ISO8601,也可以在其后指定格式,比如:%d{yyyy MMM dd HH:mm:ss,SSS},输出类似:2002年10月18日 22:10:28,921。
9、#%l 输出日志事件的发生位置,包括类目名、发生的线程,以及在代码中的行数。举例:Testlog4.main(TestLog4.java:10)。
二、格式化例子:
1、log4j.appender.thisProject.file.out.layout.ConversionPattern=log4j-->%d{yyyy MMM dd HH:mm:ss,SSS}%5p{%F\:%L}-%m%n。
三、注意:
1、信息格式化的小知识这些参数中间可能会参杂一些数字比如:%5p它的意思就是在输出此参数之前加入多少个空格,还有就是里面的“\”的作用是转义字符。
2、log4j.properties文件放置位置
(1)在java project项目中,它放置的位置是在项目的根目录下而不是在项目的src目录下。
(2)在javaweb项目中它放置的位置是在src目录下,因为这个时候tomcat会去默认的加载它的,不需要我们去手动的加载log4j的配置文件,只需要根据配置获取自己需要的logger实例即可,由此我们可以知道如果我们使用的不是tomcat容器的话,是不是需要自己手动加载或者至少要配置一下呢?比如使用Websphere等非apache服务器。
3、对于Java Web项目里面的日志的位置配置
(1)如果是要指定日志文件的位置为D盘下的log.txt文件。 log4j.appender.thisProject.file.out.File=d:\\log.txt。
2)如果指定日志文件的位置为当前的tomcat的工作目录下的某个文件log4j.appender.thisProject.file.out.File=${catalina.home}/logs/logs_tomcat.log
4、log4j的加载机制
(一) log4j.properties加载机制?其实log4j.properties只是log4j的配置文件。程序启动时,log4j组件去读log4j.properties,和读取普通配置文件没多大区别。获取用户配置的一些log4j的属性值,调用想应该的方法为log4j属性设置。
(二)把log4j.properties当作一个struts.xml或者一个hibernate-cfg.xml就可以了。但不同的是,log4j不像struts和hibernate,它不是一个独立的组件,没法自己完成初始化,一般都是什么组件需要它 就去初始化。比如,hibernate默认的日志组件就是log4j,在hibernate初始化的时候它会去初始化log4j。如果你没配置log4j.properties,hibernate会抛出异常,但还是可以正常初始化。
2018-01-12
异常信息:Exception in thread "main" java.lang.NoClassDefFoundError: org/apache/logging/log4j/message/Message
这个说明表示你的log4j.jar包没有引入工程,请检查下。
表示你的log4j.jar包没有引入工程,请检查下。
2018-01-12
mengvlog 阅读 6 次 更新于 2025-07-21 07:12:36 我来答关注问题0
  • (1)在java project项目中,它放置的位置是在项目的根目录下而不是在项目的src目录下。(2)在javaweb项目中它放置的位置是在src目录下,因为这个时候tomcat会去默认的加载它的,不需要我们去手动的加载log4j的配置文件,只需要根据配置获取自己需要的logger实例即可,由此我们可以知道如果我们使用的不是tomcat...

  •  文暄生活科普 SLF4J与Log4J的配置问题解决方案

    解决Log4J报错。常见的Log4J报错为"找不到日志器",解决方法有二:在main函数中加入`BasicConfigurator.configure();`代码或配置log4j.properties文件。前者需显式引入Log4J包,使SLF4J失去抽象层的作用;后者将配置文件放置于classpath中,以实现日志配置。总结,配置SLF4J需明确其在日志库抽象层的角色,与底...

  •  文暄生活科普 jar包冲突解决:SLF4J: Class path contains multiple SLF4J bindings.

    为解决冲突,可对冲突库进行修改操作。具体修改步骤为:重新启动springboot项目后,问题得到解决,虽然此时有告警提示,但项目能正常启动。为确保项目的稳定运行,进一步优化,可修改pom文件内容,避免重复冲突库的引入。再次启动springboot项目,问题彻底解决。

  • anonymous Could not initialize class org.apache.logging.log4j.core.LoggerContext

    在java代码里面如果只创建和使用了Logger对象,但并没有正确书写log4j.properties配置文件,就会出现以下提示:log4j:WARN No appenders could be found for logger.log4j:WARN Please initialize the log4j system properly.这不是报错,而是警告信息:配置文件log4j.properties 缺少、错误、或路径不对。

  • 完成以上步骤后,重新启动Tomcat,观察错误是否已经解决。如果问题依然存在,请检查log4j.xml文件的内容是否正确,确保没有语法错误或配置错误。另外,确保Tomcat使用的log4j版本与log4j.xml文件中的版本一致。如果不一致,可能会导致启动失败或配置无法生效。通过以上步骤,应该能够有效解决Tomcat...

檬味博客在线解答立即免费咨询

报错相关话题

Copyright © 2023 WWW.MENGVLOG.COM - 檬味博客
返回顶部