开发者社区> 问答> 正文

web.xml中配置log4jConfigLocation属性?报错

我在spring工程下的web.xml文件中配置log4j相关属性,代码如下


<!-- 日志记录 -->
  <context-param>
  <!-- 日志配置路径 -->
  <param-name>log4jConfigLocation</param-name>
  <param-value>
  classpath:log4j.properties
  </param-value>
  </context-param>  
  <context-param>
  <!-- 日志页面刷新间隔 -->
  <param-name>log4jRefreshInterval</param-name>
  <param-value>6000</param-value>
  </context-param>
  <listener>
  <listener-class>org.springframework.web.util.Log4jConfigListener</listener-class>
  </listener>




一开始我把classpath:log4j.properties写成了classpath*:log4j.properties就报错了,如下

java.lang.IllegalArgumentException: Invalid 'log4jConfigLocation' parameter: Log4j config file [F:\tomcat\webapps\hoteldemo\classpath*:log4j.properties] not found


好像配置log4j的时候不能把 classpath写成classpath*。但是在配置 contextConfigLocation 的时候是可以的。我查了资料也都是关于 classpath*和classpath,一个能遍历classpath下jar中的内容,一个不行。然而我想classpath*只是比classpath多遍历内容而已,怎么就不能替换了呢?是不是因为配置log4j有特殊的要求,不是我们手动配置去定义路径的?跟配置contextConfigLocation不是一回事


求解答,找了好多资料都不是我想要的,谢谢了
  

展开
收起
爱吃鱼的程序员 2020-06-10 10:10:18 864 0
1 条回答
写回答
取消 提交回答
  • https://developer.aliyun.com/profile/5yerqm5bn5yqg?spm=a2c6h.12873639.0.0.6eae304abcjaIB

    人家log4j读取web.xml的变量逻辑凭啥一定要跟spring一致呢,这个又没形成标准,具体你还是自己看看Log4jConfigListener里面源码怎么写的

    <spanstyle="font-family:'MicrosoftYaHei',Verdana,sans-serif,宋体;font-size:13.3333px;line-height:22px;background-color:#FFFFFF;">[F:\tomcat\webapps\hoteldemo\classpath*:log4j.properties]notfound

    <spanstyle="font-family:'MicrosoftYaHei',Verdana,sans-serif,宋体;font-size:13.3333px;line-height:22px;background-color:#FFFFFF;">首先系统这样说就是找不到你所指向的路径,

    <spanstyle="font-family:'MicrosoftYaHei',Verdana,sans-serif,宋体;font-size:13.3333px;line-height:22px;background-color:#FFFFFF;">但是<spanstyle="font-family:'MicrosoftYaHei',Verdana,sans-serif,宋体;font-size:14px;line-height:22px;background-color:#FFFFFF;">contextConfigLocation配置的时候是结合web.xml的配置文件内容一起加载的,系统自动识别支持你这样的classpath的写法单写的话肯定是不行的因为没有描述文件让系统知道你写的代码所以加载不上就报错

    <spanstyle="font-family:'MicrosoftYaHei',Verdana,sans-serif,宋体;font-size:13.3333px;line-height:22px;background-color:#FFFFFF;"><spanstyle="font-family:'MicrosoftYaHei',Verdana,sans-serif,宋体;font-size:14px;line-height:22px;background-color:#FFFFFF;">

    <spanstyle="font-family:'MicrosoftYaHei',Verdana,sans-serif,宋体;font-size:13.3333px;line-height:22px;background-color:#FFFFFF;"><spanstyle="font-family:'MicrosoftYaHei',Verdana,sans-serif,宋体;font-size:14px;line-height:22px;background-color:#FFFFFF;">

    <spanstyle="font-family:'MicrosoftYaHei',Verdana,sans-serif,宋体;font-size:13.3333px;line-height:22px;background-color:#FFFFFF;"><spanstyle="font-family:'MicrosoftYaHei',Verdana,sans-serif,宋体;font-size:14px;line-height:22px;background-color:#FFFFFF;">

    <spanstyle="color:#000080;font-weight:bold;">log4j.rootCategory=<spanstyle="color:#008000;font-weight:bold;">debug,stdout<spanstyle="color:#000080;font-weight:bold;">log4j.appender.stdout=<spanstyle="color:#008000;font-weight:bold;">org.apache.log4j.ConsoleAppender<spanstyle="color:#000080;font-weight:bold;">log4j.appender.stdout.layout=<spanstyle="color:#008000;font-weight:bold;">org.apache.log4j.PatternLayout<spanstyle="color:#000080;font-weight:bold;">log4j.appender.stdout.layout.ConversionPattern=<spanstyle="color:#008000;font-weight:bold;">%d{ABSOLUTE}%5p%t%c{2}:%L-%m%n<spanstyle="color:#000080;font-weight:bold;">log4j.category.org.springframework.beans.factory=<spanstyle="color:#008000;font-weight:bold;">error<spanstyle="color:#008000;font-weight:bold;">

    <spanstyle="font-family:'MicrosoftYaHei',Verdana,sans-serif,宋体;font-size:13.3333px;line-height:22px;background-color:#FFFFFF;"><spanstyle="font-family:'MicrosoftYaHei',Verdana,sans-serif,宋体;font-size:14px;line-height:22px;background-color:#FFFFFF;">主要常用的属性也就这么多了

    <divclass='ref'>

    引用来自“838384855”的评论

    <spanstyle="font-family:'MicrosoftYaHei',Verdana,sans-serif,宋体;font-size:13.3333px;line-height:22px;background-color:#FFFFFF;">[F:\tomcat\webapps\hoteldemo\classpath:log4j.properties]notfound

    <spanstyle="font-family:'MicrosoftYaHei',Verdana,sans-serif,宋体;font-size:13.3333px;line-height:22px;background-color:#FFFFFF;">首先系统这样说就是找不到你所指向的路径,

    <spanstyle="font-family:'MicrosoftYaHei',Verdana,sans-serif,宋体;font-size:13.3333px;line-height:22px;background-color:#FFFFFF;">但是<spanstyle="font-family:'MicrosoftYaHei',Verdana,sans-serif,宋体;font-size:14px;line-height:22px;background-color:#FFFFFF;">contextConfigLocation配置的时候是结合web.xml的配置文件内容一起加载的,系统自动识别支持你这样的classpath*的写法单写的话肯定是不行的因为没有描述文件让系统知道你写的代码所以加载不上就报错

    <spanstyle="font-family:'MicrosoftYaHei',Verdana,sans-serif,宋体;font-size:13.3333px;line-height:22px;background-color:#FFFFFF;"><spanstyle="font-family:'MicrosoftYaHei',Verdana,sans-serif,宋体;font-size:14px;line-height:22px;background-color:#FFFFFF;">

    <spanstyle="font-family:'MicrosoftYaHei',Verdana,sans-serif,宋体;font-size:13.3333px;line-height:22px;background-color:#FFFFFF;"><spanstyle="font-family:'MicrosoftYaHei',Verdana,sans-serif,宋体;font-size:14px;line-height:22px;background-color:#FFFFFF;">

    <spanstyle="font-family:'MicrosoftYaHei',Verdana,sans-serif,宋体;font-size:13.3333px;line-height:22px;background-color:#FFFFFF;"><spanstyle="font-family:'MicrosoftYaHei',Verdana,sans-serif,宋体;font-size:14px;line-height:22px;background-color:#FFFFFF;">

    <spanstyle="color:#000080;font-weight:bold;">log4j.rootCategory=<spanstyle="color:#008000;font-weight:bold;">debug,stdout<spanstyle="color:#000080;font-weight:bold;">log4j.appender.stdout=<spanstyle="color:#008000;font-weight:bold;">org.apache.log4j.ConsoleAppender<spanstyle="color:#000080;font-weight:bold;">log4j.appender.stdout.layout=<spanstyle="color:#008000;font-weight:bold;">org.apache.log4j.PatternLayout<spanstyle="color:#000080;font-weight:bold;">log4j.appender.stdout.layout.ConversionPattern=<spanstyle="color:#008000;font-weight:bold;">%d{ABSOLUTE}%5p%t%c{2}:%L-%m%n<spanstyle="color:#000080;font-weight:bold;">log4j.category.org.springframework.beans.factory=<spanstyle="color:#008000;font-weight:bold;">error<spanstyle="color:#008000;font-weight:bold;">

    <spanstyle="font-family:'MicrosoftYaHei',Verdana,sans-serif,宋体;font-size:13.3333px;line-height:22px;background-color:#FFFFFF;"><spanstyle="font-family:'MicrosoftYaHei',Verdana,sans-serif,宋体;font-size:14px;line-height:22px;background-color:#FFFFFF;">主要常用的属性也就这么多了

    2020-06-10 10:10:34
    赞同 展开评论 打赏
问答标签:
问答地址:
问答排行榜
最热
最新

相关电子书

更多
Web应用系统性能优化 立即下载
高性能Web架构之缓存体系 立即下载
PWA:移动Web的现在与未来 立即下载