-
spring加载log4j报错5
web.xml
<web-app version="2.4" xmlns="http://java.sun.com/xml/ns/j2ee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd">
<listener>
<listener-class>org.springframework.web.util.Log4jConfigListener</listener-class>
</listener>
<listener>
<listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
</listener><!--
<context-param>
<param-name>log4jConfigLocation</param-name>
<param-value>/WEB-INF/classes/log4j.xml</param-value>
</context-param>
--><context-param>
<param-name>contextConfigLocation</param-name>
<param-value>/WEB-INF/classes/spring-config.xml</param-value>
</context-param>
</web-app>
log4j.xml
<?xml version='1.0' encoding='GBK' ?>
<!DOCTYPE log4j:configuration SYSTEM "log4j.dtd">
<log4j:configuration xmlns:log4j="http://jakarta.apache.org/log4j/">
<appender name="CONSOLE" class="org.apache.log4j.ConsoleAppender">
<layout class="org.apache.log4j.PatternLayout">
<param name="ConversionPattern" value="[%7r] %6p - %30.30c - %m \n"/>
</layout>
<filter class="org.apache.log4j.varia.LevelRangeFilter">
<param name="LevelMin" value="INFO"/>
</filter>
</appender>
<appender name="FILE-INFO" class="org.apache.log4j.DailyRollingFileAppender">
<param name="DatePattern" value="'.'yyyy-MM-dd" />
<param name="Append" value="true" />
<!--
默认值是true,即将消息增加到指定文件中,false指将消息覆盖指定的文件内容
-->
<param name="file" value="d:/logs/monitor-info.log" />
<layout class="org.apache.log4j.PatternLayout">
<param name="ConversionPattern" value="%d{yyyy-MM-dd HH:mm:ss SSS} |%m \n" />
</layout>
<filter class="org.apache.log4j.varia.LevelRangeFilter">
<param name="LevelMin" value="INFO" />
</filter>
</appender>
<!-- 自定义的bug -->
<appender name="Superman" class="com.bb.superman.order.OrderLog">
</appender>
<appender name="MLOG" class="com.aa.bb.util.mlog.MongoAppender">
<param name="address"
value="mongodb://127.0.0.1:27017/mlog?connecttimeoutms=30000" />
<param name="appName" value="test_mlog" />
<filter class="org.apache.log4j.varia.LevelRangeFilter">
<param name="LevelMin" value="ERROR" />
</filter>
</appender>
<appender name="AsyncLog" class="org.apache.log4j.AsyncAppender">
<param name="BufferSize" value="128" />
<appender-ref ref="MLOG" />
<appender-ref ref="FILE-INFO"/>
<appender-ref ref="CONSOLE"/>
<appender-ref ref="Superman"/>
</appender>
<root>
<priority value="INFO"/>
<appender-ref ref="AsyncLog"/>
</root>
</log4j:configuration>
上面是配置文件列表,如果注释掉web.xml文件中的 <listener>
<listener-class>org.springframework.web.util.Log4jConfigListener</listener-class>
</listener> 或者
<context-param>
<param-name>log4jConfigLocation</param-name>
<param-value>/WEB-INF/classes/log4j.xml</param-value>
</context-param>
其中的任意一个就可以正常的运行。
其中有的用到了自定义的日志输出器,想问一下改掉web.xml文件中的这两项和不修改有何区别?2012年12月27日 11:10
1个答案 按时间排序 按投票排序
-
<context-param>
<param-name>log4jConfigLocation</param-name>
<param-value>/WEB-INF/classes/log4j.xml</param-value>
</context-param>
这个配置会通过ContextLoaderListener让spring去加载管理log4j实例。
<listener>
<listener-class>org.springframework.web.util.Log4jConfigListener</listener-class>
</listener>
是通过Log4jConfigListener去加载log4j实例。
也就是说你加载了两次log4j,同一个类加载两次,相当于你配置了两个名字一样的bean,自然会出冲突,引发异常.
所以,只需要保留一个就可以了。2012年12月27日 11:40
相关推荐
- `spring.jar`或`spring-web.jar`:这两个包中包含了log4j.properties的监听器,使得可以在不重启服务器的情况下实时更新日志配置文件。需要注意的是,如果只引入`spring-web.jar`,可能会导致程序报错,此时需要...
- `spring-core.jar`:Spring的核心库,包含了基本的工具类和反射、资源加载等基础功能。 - `spring-expression.jar`:用于在运行时解析表达式,常用于SpEL(Spring Expression Language)。 如果你在导入Spring...
log4j:1.2.16 junit:4.12 commons-logging:1.1.1 maven:3 注意:spring的不同版本与mongodb结合可能会有问题,自测:spring4.2.1结合mongodb会报错:**springframework.core.context.**service 此外,例子同时涉及:...
- 控制台还显示了关于log4j的日志警告信息,这表明log4j的配置存在问题,需要确保log4j的配置文件被正确加载。 通过上述步骤,一般可以解决S2SH整合时出现的此类问题。如果仍然遇到问题,建议检查项目配置的细节,...
同时,为了日志记录,还需要引入`spring-boot-starter-log4j2`依赖。这样,启动时就不会出现错误。 配置不生效通常是因为Druid配置类未正确地加载或设置。以下是一个示例的Druid配置类: ```java @Configuration ...
此外,log4j和slf4j是日志管理包,可以在开发过程中用来记录日志信息。它们的版本也需要在pom.xml中指定: ```xml <groupId>org.slf4j <artifactId>slf4j-api ${slf4j.version} <groupId>log4j ...
配置文件(如`application.properties`或`log4j.properties`等)的格式错误也可能导致程序无法正常启动。常见的错误包括格式不规范、语法错误等。确保所有的配置文件都符合规范是非常重要的。 - **检查方法:** - ...
在处理日志配置问题时,如遇到`java.util.zip.ZipException`错误,通常意味着应用程序未能找到必要的配置文件,例如`log4j.property`。这可能是由于配置文件路径错误或文件缺失导致的。解决方法包括: 1. **确认...
properties.put("spring.mvc.log-resolved-exception", "true"); properties.put("server.jsp-servlet.init-parameters.development", "true"); PROPERTIES = Collections.unmodifiableMap(properties); } } ```...
### 步骤4:整合到SpringBoot项目中 将ueditor整合到SpringBoot项目中需要按照以下步骤进行: * 在SpringBoot项目的静态资源目录下创建一个文件夹,并将解压后的ueditor文件夹整个放入其中。 * 在模板文件中添加...
检查`log4j.properties`或`logging.properties`文件的配置,确保日志级别设置得足够详细,以便捕捉到错误信息。 7. **Action类问题**:如果Action类的定义、实现或注解存在问题,比如没有正确的返回类型,或者没有...
问题一箩筐-关于打印日志log4j问题5 y: }- e: Z$ p6 X9 d0 A9 @ │ 7.问题一箩筐-生产环境模拟, y; v4 Z% p0 }& I+ X* B) t# j │ 8.问题一箩筐-相对路径和绝对路径 │ 9.问题一箩筐-自定义监听器,解决上下文路径...
Log4J | 日志组件 | [http://logging.apache.org/log4j/1.2/](http://logging.apache.org/log4j/1.2/) Swagger2 | 接口测试框架 | [http://swagger.io/](http://swagger.io/) sequence | 分布式高效ID生产 | ...
如果没有配置encodingAESKey,那么是不能处理加密消息的,如果有log4j的配置文件,启动阶段会给出告警信息的。 同一个公众号可以配置多个@Weixin注解控制器类,其中只需要一个有其他4项配置就可以了,如果多个控制...
loggerContext.getLogger("org.springframework").setLevel(Level.valueOf(logLevel)); } catch (Exception e) { logger.error("动态修改日志级别出错", e); return "fail"; } return "success"; } } ``` 在...