`

log4j配置,日志路径配置

阅读更多
##设置控制台输出优先级别(如果没有优先级配置控制台将没有输出)、以及输出源
##CONSOLE、STDOUT控制台输出所有级别信息,还可以设置为log4j的5种级别
log4j.rootLogger = ERROR, C, W, E

###输出到控制台
log4j.appender.C = org.apache.log4j.ConsoleAppender
log4j.appender.C.layout = org.apache.log4j.PatternLayout
log4j.appender.C.layout.ConversionPattern = %-d{yyyy-MM-dd HH:mm:ss}  [%l]:%m%n

###输出到日志文件
log4j.appender.W = org.apache.log4j.DailyRollingFileAppender
log4j.appender.W.File = ${webApp.root}/logs/log.log
log4j.appender.W.Append = true
##输出WARN级别以上的日志
log4j.appender.W.Threshold = WARN
log4j.appender.W.layout = org.apache.log4j.PatternLayout
log4j.appender.W.layout.ConversionPattern = %-d{yyyy-MM-dd HH:mm:ss}  [%l]:%m%n

###保存异常信息到单独文件
log4j.appender.E = org.apache.log4j.DailyRollingFileAppender
##异常日志文件名
log4j.appender.E.File = ${webApp.root}/logs/error.log
log4j.appender.E.Append = true
##只输出ERROR级别以上的日志
log4j.appender.E.Threshold = ERROR
##日志格式采用指定布局模式
log4j.appender.E.layout = org.apache.log4j.PatternLayout
##日志产生时间、具体位置(%l:包括类目名、发生的线程,以及在代码中的行数)、产生的具体日志信息、换行符
log4j.appender.E.layout.ConversionPattern =%-d{yyyy-MM-dd HH\:mm\:ss}  [%l]\:%m%n
 
加载log4j.properties配置文件需要在web.xml中配置一些信息,配置如下:
<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>60000</param-value>
</context-param>
 
File文件的路径配置方法:
1.使用绝对路径,把日志文件放到一个固定的位置,例如D:/logs/log.log。
2.使用环境变量:
                      A:${user.home},例如${user.home}/logs/log.log是把日志文件放到个人用户目录下,系统不同位置可能会有差异,以我的电脑系统(win10)和个人配置为例,${user.home}/logs/log.log代表C:\Users\kzhzhang\logs\log.log。
                      B:${catalina.home},例如${catalina.home}/webapps/SM/logs/error.log是把日志文件放到tomcat第一层目录下,${catalina.home}/webapps/SM/logs/error.log这样配置是为了把日志文件放到发布到tomcat下的项目内部。
                      C:${webApp.root},例如${webApp.root}/logs/error.log是把日志文件放到发布到tomcat下的项目内部,与B的例子效果一样;使用这个变量需要在web.xml中配置一些信息,配置如下,
<context-param>  
     <param-name>webAppRootKey</param-name>  
     <param-value>webApp.root</param-value>  
</context-param>
<listener>
      <listener-class>org.springframework.web.util.Log4jConfigListener</listener-class>
</listener>
 
Spring通过org.springframework.web.util.WebAppRootListener 这个监听器来监听运行时的项目路径,如果不定义webAppRootKey参数,那么webAppRootKey的值默认为"webapp.root"。
3.设置一个监听器实现ServletContextListener,在项目启动的时候初始化日志保存目录:
package www.tongmap.cn.utils;
import javax.servlet.ServletContextEvent;
import javax.servlet.ServletContextListener;

public class Log4jListener implements ServletContextListener{
 public static final String log4jDir = "log4jdir";  
 @Override
 public void contextInitialized(ServletContextEvent sce) {
  String log4jdir = sce.getServletContext().getRealPath("/") + "logs\\";
     System.setProperty(log4jDir, log4jdir); 
 }

 @Override
 public void contextDestroyed(ServletContextEvent sce) {
  System.getProperties().remove(log4jDir);
 }

}
 
 
在log4j.properties文件中使用log4dir(变量名称可以随便命名,注意保持一致)变量配置日志文件位置,例如${log4jdir}/log.log,另外还需要在web.xml中配置监听器,配置如下:
<listener>  
     <listener-class>www.tongmap.cn.utils.Log4jListener</listener-class>  
</listener>
 
ConversionPattern参数的格式含义
格式名 含义
%c 输出日志信息所属的类的全名
%d 输出日志时间点的日期或时间,默认格式为ISO8601,也可以在其后指定格式,比如:%d{yyy-MM-dd HH:mm:ss },输出类似:2002-10-18- 22:10:28
%f 输出日志信息所属的类的类名
%l 输出日志事件的发生位置,即输出日志信息的语句处于它所在的类的第几行
%m 输出代码中指定的信息,如log(message)中的message
%n 输出一个回车换行符,Windows平台为“rn”,Unix平台为“n”
%p 输出优先级,即DEBUG,INFO,WARN,ERROR,FATAL。如果是调用debug()输出的,则为DEBUG,依此类推
%r 输出自应用启动到输出该日志信息所耗费的毫秒数
%t 输出产生该日志事件的线程名
分享到:
评论

相关推荐

    log4j(二):动态配置日志输出路径

    在Web应用中,如使用的是Servlet环境,可以通过在`web.xml`中配置`ContextLoaderListener`来加载Log4j配置,同时,我们还可以创建一个Servlet,当接收到特定请求时,更新Log4j配置。 ```xml &lt;!-- web.xml 示例 --&gt; ...

    log4j中配置日志文件相对路径方法(PDF)

    ### Log4j中配置日志文件相对路径方法详解 #### 概述 在软件开发过程中,日志记录是一项重要的功能,它有助于开发者调试程序、监控应用程序的运行状态以及追踪问题。`Log4j`作为一款优秀的日志管理工具,被广泛应用...

    tomcat下的log4j日志配置

    在使用 Apache Tomcat 作为服务器时,合理配置日志框架(如 Log4j)能够极大地提高开发效率和系统的可维护性。本文将详细介绍两种常见的 Log4j 配置方式:Tomcat 级别的统一日志管理和每个 web 应用分别配置 Log4j,...

    Log4j 相对路径配置

    以下是关于Log4j相对路径配置的详细说明: 首先,在`Web.xml`文件中,我们需要进行一些配置来使Log4j在Web应用启动时初始化。`&lt;context-param&gt;`标签用于设置Log4j的相关参数: 1. `&lt;param-name&gt;webAppRootKey...

    log4j配置和加载方法

    ### Log4j配置与加载方法详解 Log4j是一款由Apache出品的日志记录工具,它提供了灵活的日志级别控制和多样化的日志输出方式,广泛应用于Java应用的开发中。本文将深入解析log4j的配置与加载机制,帮助开发者更好地...

    log4j 配置日志文件,把日志信息输出到项目的某个文件夹下

    为了使配置生效,我们需要在`web.xml`中添加如下配置,让Spring容器加载log4j配置: ```xml &lt;param-name&gt;log4jConfigLocation &lt;param-value&gt;/WEB-INF/classes/log4j.properties&lt;/param-value&gt; &lt;!-- 指定log4j...

    log4j使用与java中log4j记录日志如何写入数据库

    1. **配置文件**:Log4j的配置文件通常是`log4j.properties`或`log4j.xml`,它定义了日志的级别(如DEBUG、INFO、WARN、ERROR、FATAL)、输出目的地(控制台、文件、数据库等)以及布局格式。 2. **日志类**:在...

    mybatis,log4j打印日志到后台和文件

    创建一个名为 `log4j.properties` 或 `log4j.xml` 的配置文件,放在项目的类路径下。以下是一个基本的 `log4j.properties` 示例,用于设置日志级别、输出目的地及格式: ``` log4j.rootLogger=DEBUG, Console, ...

    老生常谈Log4j和Log4j2的区别(推荐)

    下面我们将从配置文件类型、核心JAR包、文件渲染和Log调用四个方面来比较Log4j和Log4j2的区别。 配置文件类型 Log4j通过一个.properties文件作为主配置文件,而Log4j2则弃用了这种方式,采用的是.xml、.json或者....

    spring日志配置为log4j

    本篇将详细介绍如何在Spring项目中配置日志系统为Log4j。 首先,我们要明白Log4j是一个功能强大的日志框架,它提供了丰富的日志级别(如DEBUG、INFO、WARN、ERROR和FATAL)以及灵活的日志输出配置。Log4j的配置主要...

    log4j中配置日志文件相对路径方法分析

    log4j中配置日志文件相对路径方法分析 方法一、 解决的办法自然是用相对路径代替绝对路径,其实log4j的FileAppender本身就有这样的机制,如:log4j.appender.logfile.File=${WORKDIR}/logs/app.log 其中“${...

    log4j日志报错解决办法

    3. 应用程序可能加载了其他地方的Log4j配置,例如系统级的Log4j配置。 总的来说,处理Log4j的初始化警告,关键在于正确配置和引入Log4j依赖,以及在需要使用日志的地方正确初始化logger。确保配置文件可用且路径...

    0积分:完全相对路径的log4j配置

    通过以上的详细分析,我们可以看到,在进行Log4j配置时,采用完全相对路径的方式不仅方便了开发人员的调试工作,也使得日志配置更加灵活且易于管理。这对于提高应用程序的稳定性和性能具有重要意义。

    AndroidStudio 使用log4j记录日志,按照大小定期滚动日志Demo

    首先,log4j是一款广泛使用的日志记录框架,它提供了灵活的日志配置和强大的功能。在Android环境中,由于系统默认的日志记录器(Logcat)有一些限制,如日志长度、级别控制等,因此,引入log4j可以提供更高级别的...

    Log4j中相对路径的问题

    本文主要讨论了在Log4j配置中如何处理相对路径的问题,以适应不同环境下的日志文件存储需求。 一、使用系统属性设置路径 在Log4j的配置文件(通常是`log4j.properties`)中,可以使用`${}`语法引用系统属性。例如...

    配置好log4j的eclipse简单工程,每天输出到一个日志文件中,该文件名为:“XXX_年月日时分.log”的形式

    3. **Log4j配置文件**: 关键在于`log4j.properties`或`log4j.xml`配置文件,此工程中可能包含其中一个。配置文件定义了日志记录的策略,如日志级别、输出目的地、格式化样式等。例如,以下配置创建了一个每日滚动...

    log4j 写多个日志文件,按照日期每天都记

    `log4j`是一个广泛使用的Java日志框架,它提供了灵活的日志配置,能够帮助开发者记录程序运行过程中的各种信息。本文将深入探讨如何利用`log4j`实现按照日期每天写入不同日志文件的功能,以及涉及到的相关知识点。 ...

    log4j配置与使用方法

    ### log4j配置与使用方法 #### 一、log4j简介 log4j是Apache的一个开源项目,通过使用log4j,开发者能够控制日志信息的生成、等级以及输出的目的地。它允许用户根据不同的环境调整日志的级别,从而帮助开发者在...

Global site tag (gtag.js) - Google Analytics