`

【转】关于log4j的日志文件保存位置解决方案

阅读更多

以DailyRollingFileAppender 为例:假设每天一个日志文件
有以下设置:

log4j.appender.A1=org.apache.log4j.DailyRollingFileAppender
log4j.appender.A1.File=app.log
log4j.appender.A1.DatePattern='.'yyyy-MM-dd
log4j.appender.A1.layout=org.apache.log4j.PatternLayout
log4j.appender.A1.layout.ConversionPattern=%d %5p - %c -%-4r [%t]    - %m%n

此时生成日志文件将位于tomcat的bin目录下,如要将日志文件保存在 :根目录/web-info/logs/下,个人有以下4种解决方案:
1 绝对路径
log4j.appender.A1.File=D:\apache-tomcat-6.0.18/webapps/项目/WEB-INF/logs/app.log
但这种写法灵活性很差

以下3中使用相同的设置原理: jvm的环境变量
 2:spring的Log4jConfigListener
通过以下配置:
<context-param>
    <param-name>webAppRootKey</param-name>
    <param-value>webApp.root</param-value>
  </context-param>
 <context-param>
  <param-name>log4jConfigLocation</param-name>
    <param-value>classpath:log4j.properties</param-value>
 </context-param>
<listener> 
     <listener-class>org.springframework.web.util.Log4jConfigListener</listener-class> 
 </listener>
...
log4j.appender.logfile.File=${webApp.root}/WEB-INF/logs/app.log
...
来解决
 2:使用已有jvm变量:
例如:
    log4j.appender.logfile.File=${user.home}/logs/app.log
  日志将位于:例如windows:C:\Documents and Settings\joe\logs\app.log

3 自己设置目录,也就是在项目启动时通过System.setProperty设置
通过实现ServletContextListener来解决:例如

public class log4jlistener implements ServletContextListener {

 

 public static final String log4jdirkey = "log4jdir";
 public void contextDestroyed(ServletContextEvent servletcontextevent) {
  System.getProperties().remove(log4jdirkey);

 

 }

 

 public void contextInitialized(ServletContextEvent servletcontextevent) {
  String log4jdir = servletcontextevent.getServletContext().getRealPath("/");
  //System.out.println("log4jdir:"+log4jdir);
  System.setProperty(log4jdirkey, log4jdir);

 

 }

 

}
web.xml配置:

<listener>
  <listener-class>com.log4j.log4jlistener</listener-class>
 </listener>

log4j.prtperties 配置:
log4j.appender.A1.File=${log4jdir}/WEB-INF/logs/app1.log
来解决。

 

转自:http://www.blogjava.net/freeman1984/archive/2010/06/10/323236.html

分享到:
评论

相关推荐

    使用Log4j进行日志操作

    Log4j作为一款成熟的日志框架,为Java开发者提供了一个高效、灵活的日志记录解决方案。通过合理的配置和应用,可以极大地改善项目的日志管理能力,从而提升软件的整体质量和可维护性。无论是对于初学者还是经验丰富...

    g3log 日志管理

    **g3log 日志管理详解** ...尽管其接口可能需要适应,但通过适当的封装和配置,可以将其转化为非常适合项目需求的解决方案。无论是开发还是维护阶段,g3log都能为你的项目提供宝贵的日志管理和故障排查能力。

    Log4J应用技术.PPT

    总的来说,Log4J为Java开发提供了高效、灵活的日志解决方案,它的广泛应用证明了其在软件开发中的价值。学习并掌握Log4J的使用,不仅可以提高开发效率,还能提升软件的可维护性和稳定性。对于Java开发者来说,理解和...

    C#,WPF日志管理 C#编程--项目常用日志保存

    在项目中,`.sln`文件是解决方案文件,包含项目的配置信息;`.vs`文件夹是Visual Studio的工作区文件,存储了项目设置和用户特定的配置;而`Test`可能是你的项目源代码文件夹,可能包含了项目的类库、视图模型、UI...

    详解linux下nohup日志输出过大问题解决方案

    本文将详细讨论如何解决`nohup`日志输出过大问题,并提供一些实用的解决方案。 首先,理解`nohup`命令的基本用法至关重要。`nohup`命令的基本语法是`nohup [command] [args] [&]`。运行这个命令时,系统会忽略所有...

    log4j的jar包

    7. **与其他框架的集成**: 除了Spring,Log4j还可以与Hibernate、Struts等其他Java框架无缝集成,提供统一的日志解决方案。 总之,Log4j的jar包是一个至关重要的Java开发工具,它简化了日志记录工作,提高了开发...

    Log4j简明手册下载

    Log4j的开发始于1996年,最初是为了解决大型应用程序中的日志和跟踪需求,经过不断演进,现已成为Java领域内流行的日志包。 #### 二、Log4j的诞生与演变 Log4j的起源可以追溯到E.U. SEMPER项目,该项目初期决定...

    C Sharp Log4net日志记录配置教程.docx

    总的来说,log4net提供了一个强大而灵活的日志解决方案,允许开发者自定义日志级别、格式、存储位置等,便于调试和监控应用程序。在C#项目中,通过NuGet安装、配置XML文件和在代码中初始化,可以轻松实现日志记录...

    保存日志 纯C++版本

    本项目"保存日志 纯C++版本"提供了一个跨平台的日志记录解决方案,特别强调了在Linux环境下和其他支持C++的平台上的适用性。其主要涉及以下知识点: 1. **C++编程**:C++是一种强大的、面向对象的编程语言,被广泛...

    logc.rar_C C 日志_C语言日志记录_Linux日志_logc语言_日志系统

    总的来说,"logc.rar"提供了一个用C语言实现的日志记录解决方案,具备跨平台性,能够帮助开发者更方便地管理和分析程序运行时的记录信息,对于理解日志系统的工作原理和提高故障排查效率具有重要意义。通过研究和...

    Oracle在线重做日志文件详解

    本文将详细介绍Oracle数据库中的在线重做日志文件,包括其基本概念、查询方法、添加与删除操作、以及常见问题的解决方案。 #### 二、在线重做日志文件概述 在线重做日志文件是Oracle数据库系统用于记录事务处理...

    Log4cxx_win32(支持控制台日志输出)

    总之,`Log4cxx_win32`是Windows平台上一个高效的日志记录解决方案,它的灵活性和强大功能使得开发者能够更好地管理和监控应用程序的运行状态,从而提高开发效率和软件质量。无论是在控制台还是文件中,都能方便地...

    Log4NET详细配置教程

    总之,Log4NET为.NET开发者提供了一个强大且灵活的日志解决方案,它能够满足从小型应用到大型系统的日志记录需求,通过详细的配置,可以定制出符合项目特性的日志管理体系。对于任何.NET项目,集成并正确配置Log4NET...

    卸载Sql Server 2000提示无法找到安装日志文件解决办法

    这会启动一个无声的卸载过程,并将日志保存在指定的路径下。 3. **使用系统还原**:如果上述方法无效,可以考虑恢复系统到一个时间点,那时SQL Server 2000仍然能正常卸载。但请注意,这可能会影响其他软件和设置...

    Flogs:在Flutter中开发的高级日志记录框架,可提供快速简单的日志记录解决方案

    FLog是在flutter中开发的高级日志记录框架,可提供快速简单的日志记录解决方案。 所有日志均保存到数据库中,然后可以将其导出为zip文件。 概述 FLogs是用Dart写的。 它基本上具有两种类型的记录器(FLog和DataLog)...

    linux(centos)使用glib日志库

    在实际项目中,你可能需要根据需求对日志进行更复杂的处理,比如将日志保存到文件,或者在特定情况下触发错误处理流程。这时,你可以在自定义的处理器中实现这些逻辑。 `glogDemo`这个文件可能是示例代码或编译好的...

    Hadoop日志存放位置

    在大数据处理领域,Hadoop 是一个关键的开源框架,它为大规模数据集的分布式计算提供了高效、可扩展的解决方案。而日志管理是Hadoop生态系统中的一个重要组成部分,它有助于监控系统运行状态,定位和解决问题。本文...

    一个可以记录日志信息到本地txt文件的jar包

    在Java编程中,"logger"通常指的是用于生成日志的库,如Apache Log4j、Logback或Java内置的java.util.logging框架。这些工具提供了一种结构化的方式来记录不同级别的信息,如DEBUG、INFO、WARN、ERROR等,帮助开发者...

    Oracle9i安装OCS4J.properties问题解决

    通过上述步骤,可以有效地解决Oracle9i安装过程中遇到的关于`OCS4J.properties`文件的问题。正确处理这个问题不仅可以避免安装过程中出现警告信息,还可以确保Oracle集群能够正常运行,从而提高系统的稳定性和可用性...

    查找保存Windows系统日志.rar

    4. **保存日志**:若需保存日志,可右键点击所需日志类型,选择“导出日志文件”,然后选择保存格式(XML、TXT或CSV),指定保存位置,最后点击“保存”。这样,日志信息就可以被保存到本地或移动设备上,便于后续...

Global site tag (gtag.js) - Google Analytics