spring集成log4j
来源:互联网 发布:递归算法的应用 编辑:程序博客网 时间:2024/05/22 13:29
原文地址:http://blog.csdn.net/coffeesmile/article/details/7788002
log4j.appender.appenderName.option1 = value1
…
log4j.appender.appenderName.option = valueN
其中,Log4j提供的appender有以下几种:
org.apache.log4j.ConsoleAppender(控制台),
org.apache.log4j.FileAppender(文件),
org.apache.log4j.DailyRollingFileAppender(每天产生一个日志文件),
org.apache.log4j.RollingFileAppender(文件大小到达指定尺寸的时候产生一个新的文件),
org.apache.log4j.WriterAppender(将日志信息以流格式发送到任意指定的地方)
③配置日志信息的格式(布局),其语法为:
log4j.appender.appenderName.layout = fully.qualified.name.of.layout.class
log4j.appender.appenderName.layout.option1 = value1
…
log4j.appender.appenderName.layout.option = valueN
其中,Log4j提供的layout有以下几种:
org.apache.log4j.HTMLLayout(以HTML表格形式布局),
org.apache.log4j.PatternLayout(可以灵活地指定布局模式),
org.apache.log4j.SimpleLayout(包含日志信息的级别和信息字符串),
org.apache.log4j.TTCCLayout(包含日志产生的时间、线程、类别等等信息)
Log4J采用类似C语言中的printf函数的打印格式格式化日志信息,打印参数如下: %m 输出代码中指定的消息
%p 输出优先级,即DEBUG,INFO,WARN,ERROR,FATAL
%r 输出自应用启动到输出该log信息耗费的毫秒数
%c 输出所属的类目,通常就是所在类的全名
%t 输出产生该日志事件的线程名
%n 输出一个回车换行符,Windows平台为“ ”,Unix平台为“ ”
%d 输出日志时间点的日期或时间,默认格式为ISO8601,也可以在其后指定格式,比如:%d{yyy MMM dd HH:mm:ss,SSS},输出类似:2002年10月18日 22:10:28,921
%l 输出日志事件的发生位置,包括类目名、发生的线程,以及在代码中的行数。举例:Testlog4.main(TestLog4.java:10)
2、在代码中使用Log4j
PropertyConfigurator.configure ( String configFilename) :读取使用Java的特性文件编写的配置文件。
DOMConfigurator.configure ( String filename ) :读取XML形式的配置文件。
Logger.info ( Object message ) ;
Logger.warn ( Object message ) ;
Logger.error ( Object message ) ;
public class LogTest {
static Logger logger = Logger.getLogger(LogTest.class.getName());
public static void main(String[] args) {
PropertyConfigurator.configure ( “./srclog4j.properties”);
logger.debug("Debug ...");
logger.info("Info ...");
logger.warn("Warn ...");
logger.error("Error ...");
}
}
程序说明:
"stdout",”R”表示我定义了两个输出端(随便什么名字都好)。
2 . 在log4j.properties文件里把"log4j.rootCategory=DEBUG,stdout,R"改写成"log4j.rootCategory=INFO, stdout,R",这样只显示INFO, WARN, ERROR的log信息,而DEBUG信息不会被显示;
log4e使用说明
1.在classpath的根目录下面不放置log4j.properties
在用junit本地测试的时候会提示:
log4j:WARN No appenders could be found for logger (org.springframework.beans.factory.access.SingletonBeanFactoryLocator).
log4j:WARN Please initialize the log4j system properly.
然后我们是看不到spring加载bean的配置信息的。
在classpath路径下加入:log4j.properties,则能够显示bean的加载信息
2. 在web应用中为Spring配置log4j
Spring的做法是使用一个Servlet Listener,在Web Container启动时把ROOT的绝对路径写到系统变量里,这样log4j的配置文件里就可以用${myAppfuse.root}来表示刚刚设进去的系统变量:log4j.appender.logfile.File=${myAppfuse.root}/logs/mylog.log
在Web.xml中配置语句如下:
<context-param>
<param-name>webAppRootKey</param-name>
<param-value>myappfuse.root</param-value>
</context-param>
<context-param>
<param-name>log4jConfigLocation</param-name>
<param-value>/WEB-INF/classes/log4j.properties</param-value>
</context-param>
<listener>
<listener-class>org.springframework.web.util.Log4jConfigListener</listener-class>
</listener>
<!--这里配置了一个listener,也可以配置servlet:-->
<servlet>
<servlet-name>log4j</servlet-name>
<servlet-class>
org.springframework.web.util.Log4jConfigServlet
</servlet-class>
<load-on-startup>1</load-on-startup>
</servlet>
配置好了以后我们就可以在当前应用的logs目录下找到日志记录文件:mylog.log
属性log4jConfigLocation的值建议还是设置为:/WEB-INF/classes/log4j.properties,这样我们在不启动web应用的时候,做一些测试这能够正确地记录日志信息。
- spring集成log4j
- spring集成log4j
- spring集成log4j
- log4j与Spring集成
- Spring集成log4j
- Spring MVC集成 Log4j
- spring集成 log4j + slf4j
- Spring MVC集成 Log4j
- log4j配置示例&Spring集成log4j
- log4j配置示例&Spring集成log4j
- Spring集成log4j日志管理
- 在spring中集成log4j
- Spring集成log4j日志管理
- Spring集成log4j日志管理
- Spring集成Log4j和Slf4j
- spring log4j 集成的那些事
- Spring 中集成log4j日志框架
- Log4j的使用和怎么在spring中集成log4j
- JSP JavaBean 标签
- Spring配置数据源四种方式
- android中的density
- Jetty提交数据时报java.lang.IllegalStateException: Form too large270468>200000问题解决
- 《TCP/IP详解卷1》学习小结(一)------链接层
- spring集成log4j
- Debian 6.0.6 系统安装第四步: 英文系统下显示中文
- MacVTap
- WideCharToMultiByte和MultiByteToWideChar函数的用法
- opengl学习笔记(4)
- 初识GCD和block
- android: Serializable 和 Parcelable
- php安装报错 ‘gdIOCtx’ 没有名为 ‘data’ 的成员
- 词性标注类函数