Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/maven/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Maven 找不到记录器(org.springframework.web.context.ContextLoader)的追加器_Maven_Log4j_Slf4j_Appender - Fatal编程技术网

Maven 找不到记录器(org.springframework.web.context.ContextLoader)的追加器

Maven 找不到记录器(org.springframework.web.context.ContextLoader)的追加器,maven,log4j,slf4j,appender,Maven,Log4j,Slf4j,Appender,我继承了一堆代码,我注意到在tomcat日志中 log4j:警告:找不到记录器的附加器 (org.springframework.web.context.ContextLoader)。log4j:请警告 正确初始化log4j系统。log4j:请参阅 更多信息 faq链接提到,当找不到默认配置文件log4j.properties和log4j.xml且应用程序未执行显式配置时,会发生这种情况 我怎样才能准确地解决这个问题呢。xml文件具有以下内容。所以我猜是因为没有log4j.xml,而是每个环境都

我继承了一堆代码,我注意到在tomcat日志中

log4j:警告:找不到记录器的附加器 (org.springframework.web.context.ContextLoader)。log4j:请警告 正确初始化log4j系统。log4j:请参阅 更多信息

faq链接提到,当找不到默认配置文件log4j.properties和log4j.xml且应用程序未执行显式配置时,会发生这种情况

我怎样才能准确地解决这个问题呢。xml文件具有以下内容。所以我猜是因为没有log4j.xml,而是每个环境都有一个log4j.xml。假设这就是问题所在,我如何正确配置

<bean id="log4jInitialization"
        class="org.springframework.beans.factory.config.MethodInvokingFactoryBean">
       <property name="targetClass" value="org.springframework.util.Log4jConfigurer" />
       <property name="targetMethod" value="initLogging" />
       <property name="arguments">
          <list>
              <value>classpath:log4j-${environment}.properties</value>
          </list>
       </property>
    </bean>

类路径:log4j-${environment}.properties

很少有集体解决方案-

  • 定义bean时,应该有一些属性文件,从中获取
    ${environment}
    的值(假定
    env
    )。您必须注意,将该值附加到文件名。应该存在于项目资源下。在您的例子中,一个名为
    log4j env.properties
    的文件

  • 建议对不同的环境使用不同的日志记录方法,同时将它们分类到不同的目录下,以便将您的值改为-

    <property name="arguments">
        <list>
            <value>#{environment + '/log4j.properties'}</value>
        </list>
    </property>
    
  • 来源-


    注意-关于如何在运行时为
    环境
    分配正确的值,请遵循

    查找
    环境
    的值解析为什么(可能类似于
    dev
    prod
    ,尝试对“环境”进行文本搜索在tomcat下的所有文件中,或者通过查看
    ps
    info),然后在部署的webapp的
    WEB-INF/classes
    目录中的
    log4j-dev.xml
    (或其他名称,取决于实际解析的环境)中放置一个有效的log4j配置。属性
    ${environment}
    是否存在?你能做一个测试并发布你的Spring配置吗?
    <context-param>
        <param-name>log4jConfigLocation</param-name>
        <param-value>/${environment}/log4j.properties</param-value>
    </context-param>
    
    <listener>
        <listener-class>org.springframework.web.util.Log4jConfigListener</listener-class>
    </listener>