【Spring】在springmvc中使用log4j日志功能
来源:互联网 发布:surge for mac 教程 编辑:程序博客网 时间:2024/06/01 07:57
- step 1maven的依赖配置
- step 2log4jxml配置文件
- step 3webxml配置
- step 4在程序中获取logger对象写日志
step 1、maven的依赖配置
<!-- Logging --> <dependency> <groupId>org.slf4j</groupId> <artifactId>slf4j-api</artifactId> <version>1.6.6</version> </dependency> <dependency> <groupId>org.slf4j</groupId> <artifactId>jcl-over-slf4j</artifactId> <version>1.6.6</version> <scope>runtime</scope> </dependency> <dependency> <groupId>org.slf4j</groupId> <artifactId>slf4j-log4j12</artifactId> <version>1.6.6</version> <scope>runtime</scope> </dependency>
step 2、log4j.xml配置文件
主要是appender和logger、root的配置;
appender提供给logger、root调用,appender提供的信息包括输出的类型(控制台、文件等)、输出的格式、输出的级别等等;一般会设置一个console的输出,和几个info、dubug、error等的file类型的appender;
子logger会继承root,即继承appender的引用,但是输出level不会有影响,但是当additivity属性设置为false的时候就不会继承;
logger里面level的设置,指的是最低的级别。log4j的级别对应为:
ALL
<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE log4j:configuration PUBLIC "-//APACHE//DTD LOG4J 1.2//EN" "log4j.dtd"><log4j:configuration xmlns:log4j="http://jakarta.apache.org/log4j/"> <!--输出到控制台的appender--> <appender name="console" class="org.apache.log4j.ConsoleAppender"><!--appender的名字,供logger或者root调用 --> <param name="encoding" value="utf-8"/><!--编码 --> <param name="target" value="System.out"/><!--输出到控制台 --> <layout class="org.apache.log4j.PatternLayout"><!-- layout表示输出方式,可以多种,class值区分,PatternLayout表示自定义格式--> <param name="ConversionPattern" value="%d{ISO8601} 耗时:%r [日志来自:%-40.40c{3} 日志类型: %-5p 日志内容:%m]%n"/><!--输出格式 --> </layout> </appender> <!--输出到文件的appender,公共的,按日期生成新文件--> <appender name="DEFAULT-APPENDER" class="org.apache.log4j.DailyRollingFileAppender"> <param name="File" value="/Users/apple/logs/conmmon-default.log"/> <param name="Append" value="true"/><!--是否项目重启 继续保存之前日志 --> <param name="threshold" value="all"/><!--纪录所有类型日志, --> <param name="DatePattern" value="'.'yyyy-MM-dd'.log'"/> <param name="encoding" value="utf-8"/><!--编码 --> <layout class="org.apache.log4j.PatternLayout"><!-- layout表示输出方式,可以多种,class值区分,PatternLayout表示自定义格式--> <param name="ConversionPattern" value="%d{ISO8601} 耗时:%r [日志来自:%-40.40c{3} 日志类型: %-5p 日志内容:%m]%n"/><!--输出格式 --> </layout> </appender> <!--输出到文件的appender, info日志--> <appender name="INFO-APPENDER" class="org.apache.log4j.DailyRollingFileAppender"> <param name="File" value="/Users/apple/logs/conmmon-info.log"/> <param name="Append" value="true"/><!--是否项目重启 继续保存之前日志 --> <param name="DatePattern" value="'.'yyyy-MM-dd'.log'"/> <param name="encoding" value="utf-8"/><!--编码 --> <layout class="org.apache.log4j.PatternLayout"><!-- layout表示输出方式,可以多种,class值区分,PatternLayout表示自定义格式--> <param name="ConversionPattern" value="%d{ISO8601} 耗时:%r [日志来自:%-40.40c{3} 日志类型: %-5p 日志内容:%m]%n"/><!--输出格式 --> </layout> <!--只记录info信息,就做如下设置--> <filter class="org.apache.log4j.varia.LevelRangeFilter"> <param name="LevelMax" value="info"/> <param name="LevelMin" value="info"/> </filter> </appender> <!--输出到文件的appender,error日志--> <appender name="ERROR-APPENDER" class="org.apache.log4j.DailyRollingFileAppender"> <param name="File" value="/Users/apple/logs/conmmon-error.log"/> <param name="Append" value="true"/><!--是否项目重启 继续保存之前日志 --> <param name="DatePattern" value="'.'yyyy-MM-dd'.log'"/> <param name="encoding" value="utf-8"/><!--编码 --> <layout class="org.apache.log4j.PatternLayout"><!-- layout表示输出方式,可以多种,class值区分,PatternLayout表示自定义格式--> <param name="ConversionPattern" value="%d{ISO8601} 耗时:%r [日志来自:%-40.40c{3} 日志类型: %-5p 日志内容:%m]%n"/><!--输出格式 --> </layout> <!--只记录error信息,就做如下设置--> <filter class="org.apache.log4j.varia.LevelRangeFilter"> <param name="LevelMax" value="error"/> <param name="LevelMin" value="error"/> </filter> </appender> <!--输出到文件的appender,warn日志--> <appender name="WARN-APPENDER" class="org.apache.log4j.DailyRollingFileAppender"> <param name="File" value="/Users/apple/logs/conmmon-warn.log"/> <param name="Append" value="true"/><!--是否项目重启 继续保存之前日志 --> <param name="DatePattern" value="'.'yyyy-MM-dd'.log'"/> <param name="encoding" value="utf-8"/><!--编码 --> <layout class="org.apache.log4j.PatternLayout"><!-- layout表示输出方式,可以多种,class值区分,PatternLayout表示自定义格式--> <param name="ConversionPattern" value="%d{ISO8601} 耗时:%r [日志来自:%-40.40c{3} 日志类型: %-5p 日志内容:%m]%n"/><!--输出格式 --> </layout> <!--只记录warn信息,就做如下设置--> <filter class="org.apache.log4j.varia.LevelRangeFilter"> <param name="LevelMax" value="warn"/> <param name="LevelMin" value="warn"/> </filter> </appender> <!--info log--> <logger name="whu.lmars.indoorparking" additivity="false"><!--为false的时候 限制了叠加性 即此时子logger不会继承root的appender --> <level value="info"/><!-- ALL < DEBUG < INFO < WARN < ERROR < FATAL < OFF --> <appender-ref ref="INFO-APPENDER"/> <appender-ref ref="ERROR-APPENDER"/> <appender-ref ref="WARN-APPENDER"/> <appender-ref ref="console"/> </logger> <root> <!--<level value="ALL"/>--><!--默认是debug --> <appender-ref ref="DEFAULT-APPENDER"/> </root></log4j:configuration>
step 3、web.xml配置
<!--关于log4j的相关配置--> <context-param> <param-name>log4jConfigLocation</param-name> <param-value>classpath:log4j.xml</param-value> </context-param> <!--加载log4j配置文件--> <listener> <listener-class>org.springframework.web.util.Log4jConfigListener</listener-class> </listener>
step 4、在程序中获取logger对象,写日志
static Logger logger = LoggerFactory.getLogger(UpdateScoreThread.class); /** * UpdateScoreThread.class传入的实际上是完整的包名加类名,即whu.lmars.indoorparking.thread.UpdateScoreThread,那么如果存在 * whu.lmars.indoorparking 或者whu.lmars.indoorparking.thread的logger,那么此log就继承他,否则的话就继承rootLogger */
0 0
- 【Spring】在springmvc中使用log4j日志功能
- 在项目中实际使用log4j日志功能
- Spring 中配置log4j日志功能
- Spring 中配置log4j日志功能
- Spring 中配置log4j日志功能
- Spring boot中使用log4j记录日志
- Spring boot中使用log4j记录日志
- Spring boot中使用log4j记录日志
- 在用maven搭建的springmvc项目中配置使用log4j日志文件
- 在Spring中使用AOP实现日志功能
- Spring Mybatis log4j 在日志文件中显示sql日志
- Spring Mybatis log4j 在日志文件中显示sql日志
- 【springmvc (六)】 使用log4j 日志
- 使用Log4j在程序中加入日志
- 使用Log4j在程序中加入日志
- 在tomcat6中使用log4j记录日志
- log4j日志在web项目中使用
- spring-junit中使用 log4j或者logback 打印spring日志
- Redis启动报错
- 逻辑回归模型(logistic regression)
- 关于web.xml的文章
- 微信分享完成之后,选择“留在微信”,不会走友盟的分享结果回调问题
- python读取txt数据,转换到excel表中
- 【Spring】在springmvc中使用log4j日志功能
- 记录一点关于list每次以指定的间距分割的代码,仅做一个记录
- HTM-16.2代码(2)——帧间预测(理论)
- AndroidStudio LiveTemplates 使用
- final、finally 和 finalize 区别
- C语言-signal.h简单使用
- SD-SO 更改 item category
- Spark(三): 安装与配置
- linux设置时间同步命令