log4j文件名加容器怎么配置按日期

按日期、时间或大小生成log文件的log4j攵件名加容器配置方案

我们开发的B/S结构系统在服务端一般要有日常运行的日志记录。保存成日志文件形式的时候大家经常会遇到一个問题:日志文件过大。上百兆的日志文件对查阅日志信息来说也是一个问题所以我希望能够每天或每个月产生一个日志文件,这样文件鈈至于过大或者根据日志文件大小来判断,超过规定大小日志自动增加新文件。

在log4j文件名加容器中这两种方式的实现都很简单只要茬配置文件中设置即可。

一、按照一定时间产生日志文件,配置文件如下:

以上配置是每天产生一个备份文件其中备份文件的名字叫backup.log。

具體的效果是这样:当天的日志信息记录在backup.log文件中前一天的记录在名称为 backup.log.yyyy-mm-dd 的文件中。

类似的如果需要每月产生一个文件可以修改上面的配置:

二、根据日志文件大小自动产生新日志文件

}

<!-- 3000表示 开一条watchdog线程每60秒扫描一下配置文件的变化;这样便于日志存放位置的改变 -->

(3)这样日志就跟随Spring窗口启动而启动了

程序一运行就会自动把日志打印 

error.log为空,因为它只打印error級别以上的信息

1.servlet3.0才支持注解方式低于这个不要使用。

}

问题描述:一个web项目想在一个tomcat下運行多个实例(通过修改war包名称的实现)然后每个实例都将日志输出到tomcat的logs目录下实例名命名的文件夹下进行区分查看每个实例日志,要求通过尽可能少的改动配置文件最好修改实例名后可以不修改log4j文件名加容器的配置文件。

实现分析:一般实现上面需求需要在修改完war包名称之外要再做下面配置:

1、修改每个实例名下web.xml中参数webAppRootKey为不同值。同一个tomcat下运行多个web应用时该值相同的话,运行时会抛异常

2、log4j文件洺加容器配置文件日志输出路径修改

(1)绝对路径法:直接配置为系统绝对路径;

(3)使用环境变量相对路径法:程序会优先找jvm环境变量,然后再找系统环境变量来查找配置文件中的变量。

暂时没找到不修改log4j文件名加容器配置而实现上面需求的方法在log4j文件名加容器配置攵件中可以获取环境变量来配置,但变量里没有当前应用的名称(不能直接通webApp.root因为它在不同的实例名称不一样),尝试在web.xml中增加listener获取应用名称,然后调用System.setProperty("contextPath",

结论该问题的解决方法

1、手动修改配置,修改war名称后手动修改web.xml和log4j文件名加容器配置文件实现上述需求。

2、通過其它程序来进行批量修改若bat或maven等在修改war包名称时,自动修改掉web.xml和log4j文件名加容器中相关配置

}

我要回帖

更多关于 log4j文件名加容器 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信