关于web项目log日志指定输出文件位置配置
2017-08-07 15:34
309 查看
首先我们定义一个可以在运行时动态的找出项目的路径WebAppRootKey,这么做的原因是为了在后面配置log4j输出文件路径的时候能随心配置。
然后要定义项目log配置文件的路径以及log4j监听器
这样web.xml文件的配置完毕,然后就是log配置文件的具体配置文件:
项目结构如下:
一切准备就绪之后,项目一旦启动你就能在你规定的输出位置找到你每天或者每个小时的日志文件,log配置文件还可以进行拓展配置每个文件的大小以及文件出错时的回滚事宜,这里不做赘述。
<context-param> <param-name>webAppRootKey</param-name> <param-value>amt.root</param-value> </context-param>
然后要定义项目log配置文件的路径以及log4j监听器
<context-param> <param-name>log4jConfigLocation</param-name> <param-value>classpath:conf/log4j.xml</param-value> </context-param> <!--定义LOG4J监听器--> <listener> <listener-class>org.springframework.web.util.Log4jConfigListener</listener-class> </listener>
这样web.xml文件的配置完毕,然后就是log配置文件的具体配置文件:
<?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE log4j:configuration SYSTEM "log4j.dtd"> <log4j:configuration> <!-- 将日志信息输出到控制台 --> <appender name="ConsoleAppender" class="org.apache.log4j.ConsoleAppender"> <!-- 设置日志输出的样式 --> <layout class="org.apache.log4j.PatternLayout"> <!-- 设置日志输出的格式 --> <param name="ConversionPattern" value="[%d{yyyy-MM-dd HH:mm:ss:SSS}] [%-5p] [method:%l]%n%m%n%n" /> </layout> <!--过滤器设置输出的级别--> <filter class="org.apache.log4j.varia.LevelRangeFilter"> <!-- 设置日志输出的最小级别 --> <param name="levelMin" value="INFO" /> <!-- 设置日志输出的最大级别 --> <param name="levelMax" value="ERROR" /> <!-- 设置日志输出的xxx,默认是false --> <param name="AcceptOnMatch" value="true" /> </filter> </appender> <!-- 将日志信息输出到文件,可以配置多久产生一个新的日志信息文件 --> <appender name="rollingFile" class="org.apache.log4j.DailyRollingFileAppender"> <!-- 设置日志信息输出文件全路径名 --> <param name="File" value="${amt.root}/logs/spdbData.log" /> <!-- 设置日志每小时回滚一次,即产生一个新的日志文件 --> <param name="DatePattern" value="'_'yyyy-MM-dd-HH'.log'" /> <!-- 设置日志输出的样式 --> <layout class="org.apache.log4j.PatternLayout"> <!-- 设置日志输出的格式 --> <param name="ConversionPattern" value="[%d{yyyy-MM-dd HH:mm:ss:SSS}] [%-5p] [method:%l]%n%m%n%n" /> </layout> </appender> <!-- 注意: 1:当additivity="false"时,root中的配置就失灵了,不遵循缺省的继承机制 2:logger中的name非常重要,它代表记录器的包的形式,有一定的包含关系,试验表明 2-1:当定义的logger的name同名时,只有最后的那一个才能正确的打印日志 2-2:当对应的logger含有包含关系时,比如:name=test.log4j.test8 和 name=test.log4j.test8.UseLog4j,则2-1的情况是一样的 2-3:logger的name表示所有的包含在此名的所有记录器都遵循同样的配置,name的值中的包含关系是指记录器的名称哟!注意啦! 3:logger中定义的level和appender中的filter定义的level的区间取交集 4:如果appender中的filter定义的 levelMin > levelMax ,则打印不出日志信息 --> <!--指定logger的设置,additivity指示是否遵循缺省的继承机制 --> <logger name="test.log4j.test8.UseLog4j_" additivity="false"> <level value ="ERROR"/> <appender-ref ref="rollingFile"/> </logger> <!-- 根logger的设置--> <root> <level value ="info"/> <appender-ref ref="ConsoleAppender"/> <appender-ref ref="rollingFile"/> </root> </log4j:configuration>
项目结构如下:
一切准备就绪之后,项目一旦启动你就能在你规定的输出位置找到你每天或者每个小时的日志文件,log配置文件还可以进行拓展配置每个文件的大小以及文件出错时的回滚事宜,这里不做赘述。
相关文章推荐
- 基于web项目log日志指定输出文件位置配置方法
- log4j无日志生成? 我将一个web项目部署在tomcat server.xml配置文件中,当我启动tomcat是无日志输出。
- log4j高级技巧--动态配置日志输出文件的位置
- 关于 Eclipse 创建 Dynamic Web Project (动态的 WEB 项目) 为什么会出现没有web.xml配置文件的问题
- 在项目中配置LOG4j,可以将LOG输出到文件中和控制台
- 关于log4j的配置,控制台打印和错误信息输出到指定文件
- tomcat配置log4j打印输出日志到指定文件
- web项目Log4j日志输出路径配置问题
- java web 项目log 配置 (将log 和hibernate的hql/sql 信息打印到控制台和日志文件中)
- 关于Rational DOORS Web Access的日志文件存放位置
- 修改Keepalived配置文件位置以及重定向Keepalived日志的输出路径
- 配置log4j输出指定类中的日志信息到指定的位置
- tomcat日志配置,log信息如何输出到同一个文件
- 软件开发工程师(JAVA)中级考试大纲-----四(四)Log4J的原理及配置;Log4J常用的API;在项目中应用日志框架Log4J关键类和接口介绍;Java properties配置文件log
- 有效Log4j按指定级别定向输出日志到指定的输出文件地址配置Threshold,log4j中如何屏蔽父logger输出源rootlogger的additivity配置,log4j向多个文件记录日志
- log4j高级技巧--动态配置日志输出文件的位置
- 关于一个具有配置文件的 Java Project 项目(非 web 项目)在服务器上的一个便捷部署
- 在Spring的项目中配置Log4j存放日志文件到指定目录下
- 关于 Eclipse 创建 Dynamic Web Project (动态的 WEB 项目) 为什么会出现没有web.xml配置文件的问题