log4j日志文件 log4j.xml log4j.properties配置
1,导入log4j jar包;
2,配置log4j.xml或log4j.properties文件;
-----------------------------------------------------------------------------------------------------------
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE log4j:configuration SYSTEM "log4j.dtd">
<log4j:configuration xmlns:log4j="http://jakarta.apache.org/log4j/" debug="false">
<!--输出方式:输出到控制台-->
<appender name="myConsole" class="org.apache.log4j.ConsoleAppender">
<!--
设置通道名称和输出方式,其中输出方式appender有5种,分别为
org.apache.log4j.RollingFileAppender
org.apache.log4j.ConsoleAppender (控制台)
org.apache.log4j.FileAppender (文件)
org.apache.log4j.DailyRollingFileAppender (每天产生一个日志文件)
org.apache.log4j.WriterAppender (将日志信息以流格式发送到指定地方)
-->
<param name="Target" value="System.out"/>
<param name="Threshold" value="INFO"/>
<!--
Threshold是个全局的过滤器,他将把低于所设置的level的信息过滤不显示出来
-->
<!-- 设置日志输出的格式-->
<layout class="org.apache.log4j.PatternLayout">
<!--
参数都以%开始后面不同的参数代表不同的格式化信息:
%c 输出所属类的全名,可在修改为 %d{Num} ,Num类名输出的范围
如:"org.apache.elathen.ClassName",%C{2}将输出elathen.ClassName
%d 输出日志时间其格式为 %d{yyyy-MM-dd HH:mm:ss,SSS},可指定格式 如 %d{HH:mm:ss}
%l 输出日志事件发生位置,包括类目名、发生线程,在代码中的行数
%n 换行符
%m 输出代码指定信息,如info(“message”),输出message
%p 输出优先级,即 FATAL ,ERROR 等
%r 输出从启动到显示该log信息所耗费的毫秒数
%t 输出产生该日志事件的线程名-->
<!-- The default pattern: Date Priority [Category] Message\n -->
<param name="ConversionPattern" value="%d{ABSOLUTE} %-5p [%c{1}] %m%n"/>
</layout>
</appender>
<!--输出方式是:每天一个日志文件-->
<!--设置通道名称是:file,输出方式DailyRollingFileAppender-->
<appender name="myFile" class="org.apache.log4j.DailyRollingFileAppender">
<!--日志文件路径和文件名称 -->
<!-- 加../在logs,加/在C盘,不加在bin目录 -->
<!--
如果在加载时设置了变量System.setProperty("WebApp", appRoot),
可在此取出来${WebApp} -->
<param name="File" value="F:/xxy/mylog.log"/>
<!-- 设置是否在重新启动服务时,在原有日志的基础添加新日志 -->
<param name="Append" value="true"/>
<!-- Rollover at midnight each day -->
<!-- e.g. mylog.log.2009-11-25.log -->
<param name="DatePattern" value="'.'yyyy-MM-dd'.log'"/>
<!-- Rollover at the top of each hour
<param name="DatePattern" value="'.'yyyy-MM-dd-HH'.log'"/>
-->
<layout class="org.apache.log4j.PatternLayout">
<!--
The default pattern: Date Priority [Category] Message\n
-->
<param name="ConversionPattern" value="%d %-5p [%c] %m%n"/>
<!--
The full pattern: Date MS Priority [Category] (Thread:NDC) Message\n -->
<!--
<param name="ConversionPattern" value="%d %-5r %-5p [%c] (%t:%x) %m%n"/>
-->
</layout>
</appender>
<appender name="ERROR_LOG" class="org.apache.log4j.DailyRollingFileAppender">
<errorHandler class="org.apache.log4j.helpers.OnlyOnceErrorHandler"/>
<param name="File" value="error.log"/>
<param name="Append" value="true"/>
<!-- 指定日志输出级别 -->
<param name="Threshold" value="INFO"/>
<param name="DatePattern" value="'.'yyyy-MM-dd'.log'"/>
<layout class="org.apache.log4j.PatternLayout">
<param name="ConversionPattern" value="%d %-5p [%c] %m%n"/>
</layout>
</appender>
<!--
level:是日记记录的优先级,优先级由高到低分为
OFF ,FATAL ,ERROR ,WARN ,INFO ,DEBUG ,ALL。
Log4j建议只使用FATAL ,ERROR ,WARN ,INFO ,DEBUG这四个级别。
-->
<!-- 指定logger的设置,additivity指示是否叠加输出log,如果是false,
在DsErrorLog logger中日志不会被其它logger满足条件的logger(比如root)
输出
-->
<!-- 将名称为DSErrorLog的logger,输出到“EEROR_LOG”的appender
所谓logger的名字也就是,在定义Logger时,构造函数的参数
Logger log = Logger.getLogger("DSErrorLog");
-->
<logger name="DSErrorLog" additivity="false">
<level class="org.apache.log4j.Level" value="DEBUG"/>
<appender-ref ref="ERROR_LOG"/>
</logger>
<!--
输出指定类包中的日志,比如想输出
Hibernate运行中生成的SQL语句,可作如下设置
-->
<category name="org.hibernate.SQL">
<priority value="DEBUG"/>
<!--
如果指定一个appender,这些log将被输出到指定的appender
如:<appender-ref ref="myFile"/>
否则将作用于所有的appender
-->
</category>
<!--
根默认会自动构建一个 root,输出INFO级别的日志到控制台,供logger继承
-->
<root>
<priority value ="INFO"/>
<appender-ref ref="myConsole"/>
<appender-ref ref="myFile"/>
</root>
</log4j:configuration>
----------------------------------------------------------------------------------------------------------
3,测试代码;
public class LoggerTest {
static Logger log4j = Logger.getLogger(LoggerTest.class.getName());
public static void main(String args[]){
PropertyConfigurator.configure("rec/log4j.xml");
log4j.info("log4j.info");
log4j.warn("log4j.warning");
log4j.error("log4j.error");
log4j.debug("log4j.fatal");
}
}
-----------------------------------------------------------------------------------------------------------
4,在web项目中使用;
利用web项目启动的时候去加载log4j.xml配置文件
在web.xml文件中
<context-param>
<param-name>log4jConfigLocation</param-name>
<param-value>log4j.xml</param-value>
</context-param>
<!-- 加载log4j配置文件 -->
<listener>
<listener-class>onlyfun.logger.Log4jConfigListener</listener-class>
</listener>
public class Log4jConfigListener implements ServletContextListener{
public static final String CONFIG_LOCATION_PARAM = "log4jConfigLocation";
public static final String XML_FILE_EXTENSION = ".xml";
public void contextDestroyed(ServletContextEvent event) {
LogManager.shutdown();
}
public void contextInitialized(ServletContextEvent event) {
String location = event.getServletContext().getInitParameter(CONFIG_LOCATION_PARAM);
if (location != null) {
if (!location.startsWith("/")) {
location = "/" + location;
}
location = event.getServletContext().getRealPath(location);
//如果是xml结尾就用DOM解析,否则就用properties解析
if (location.toLowerCase().endsWith(XML_FILE_EXTENSION)) {
DOMConfigurator.configure(location);
}else {
PropertyConfigurator.configure(location);
}
}
}
}
加载完毕...........................................................................................................................................
最后,可写个公共方法便于应用
public class Log4jUtil {
public static Logger getInfoLogger(){
return Logger.getLogger("INFO2222");
}
public static Logger getErrorLogger(){
return Logger.getLogger("ERROR_LOG");
}
}
在别的类中可用以下得到:
Log4jUtil.getInfoLogger().info("--------massage---------");
到此为止,主要为自己做备忘,同时方便有需要的人。呵呵!
log4j日志文件 log4j.xml log4j.properties配置的更多相关文章
- Log4j 输出的日志中时间比系统时间少了8小时的解决方法,log4j日志文件重复输出
1. 第一个问题:时间少了8小时 Log4j 输出的日志中,时间比系统时间少了8小时,但是 eclipse 控制台输出的日志的时间却是对的. log4j配置如下: #all logger output ...
- java log4j 日志文件
开发中经常会用到log日志文件,根据业务需要可能不产生很大日志文件给维护和[排错带来了麻烦.所以我们希望能够每天或每个月产生一个日志文件,这样文件不至于过大. 或者根据日志文件大小来判断,超过规定大小 ...
- log4j 日志文件(Day_19)
详细 : https://www.cnblogs.com/liaojie970/p/7634838.html log4j 日志文件 1 log4j.rootLogger=debug,CONSO ...
- Hibernate4搭建Log4J日志管理(附Log4j.properties配置详解)
1.首先加入slf4j的jar包,即slf4j-api-1.6.1.jar 在hibernate官网下载hibernate-release-4.2.2.Final.zip并解压,在hibernate- ...
- Spring MVC中 log4j日志文件配置相对路径
log4j和web.xml配置webAppRootKey 的问题 1 在web.xml配置 <context-param> <param-name>webAppRootKey ...
- Hibernate使用Log4j日志记录(使用xml文件)
日志记录使程序员能够将日志详细信息永久写入文件. Log4j和Logback框架可以在hibernate框架中使用来支持日志记录. 使用log4j执行日志记录有两种方法: 通过log4j.xml文件( ...
- log4j日志文件配置
### set log levels ### ### debug (打印代码中logger.debug(xx)的信息)> info(打印代码中logger.info(xx)的信息) log4j. ...
- apache log4j日志工具使用入门[maven 项目配置]
简单的介绍下Maven项目中有关org.apache.log4j.Logger的使用.[1]首先我们需要找到 org.apache.log4j.Logger的坐标,并配置到POM.xml <de ...
- [ log4j ]-日志文件的使用
在java文件中通过 log4j 输出日志信息 1,先引入 log4j-xx.x.jar 包 2,新建一个日志类 PrintLog4j.java: package com.stu.log4j; imp ...
随机推荐
- ahjesus Axure RP 7.0注册码
ahjesus Axure RP 7.0注册码 用户名:axureuser 序列号:8wFfIX7a8hHq6yAy6T8zCz5R0NBKeVxo9IKu+kgKh79FL6IyPD6lK7G6+t ...
- 【Android学习】《Android开发视频教程》第二季笔记(未完待续)
视频地址: http://study.163.com/course/courseMain.htm?courseId=207001 课时22 Activity生命周期(一) 1.如何在一个应用中添加新 ...
- Effective C++ 33 避免遮掩继承而来的名称
首先介绍一个原则LSP(Liskov Substitution Principle),如果Class D以Public方式继承Class B,则所有B对象可以派上用场的任何地方,D对象一样可以派上用场 ...
- Mysql数据库的使用总结之Innodb简介(一)
最近在对开发的软件的服务器部分制作安装包,但服务器部分需要有mysql数据库的支持.因此,采用免安装版的mysql策略:将mysql数据库需要的文件在安装程序中进行设置和打包即可.但也遇到了很多 ...
- 获取FIle路径下所有文件的地址和名称
public static void getFileName(File[] files) { String address=""; if (files != null)// 先判断 ...
- 严重: Error configuring application listener of class org.springframework.web.context.ContextLoaderLis
一个让我崩溃的问题 感谢:http://blog.csdn.net/itlionwoo/article/details/17523371
- Android笔记:android的适配
public int Dp2Px(Context context, float dp) { final float scale = context.getResources().getDisplayM ...
- java类读取properties文件
package com.bshinfo.el.userInfo.util; import java.io.BufferedReader;import java.io.File;import java. ...
- ASP.NET MVC cs类中根据Controller和Action生成URL
var Url = new UrlHelper(HttpContext.Current.Request.RequestContext); Url.Action("AnnounceDetail ...
- Android 笔记 day4
单元测试