`

log4j 产生的日志位置设置 和 catalina.home、catalina.base .

 
阅读更多
方法一、 解决的办法自然是用相对路径代替绝对路径,其实log4j的FileAppender本身就有这样的机制,如:log4j.appender.logfile.File=${WORKDIR}/logs/app.log
其中“${WORKDIR}/”是个变量,会被System Property中的“WORKDIR”的值代替。这样,我们就可以在log4j加载配置文件之前,先用System.setProperty ("WORKDIR", WORKDIR);设置好根路径,此操作可通过一初始的servlet进行。

方法二、可以使用服务器环境变量
log4j的配置文件支持服务器的vm的环境变量,格式类似${catalina.home}
log4j.appender.R=org.apache.log4j.RollingFileAppender
log4j.appender.R.File=${catalina.home}/logs/logs_tomcat.log
log4j.appender.R.MaxFileSize=10KB
其中的${catalina.home}并非windows系统的环境变量,这个环境变量就不需要在Windows系统的环境变量中设置。之所以这样,你可以看看tomcat\bin\catalina.bat(startup,shutdown都是调用这个)里面自带有-Dcatalina.home= "%CATALINA_HOME%" 。继承这个思想,所以你也可以自己设定一个参数-Dmylog.home="D:/abc/log"到对应的服务器java启动的vm参数中

方法三、通过servlet初始化init()方法中加载file属性实现相对路径
具体实现:做一个servlet,在系统加载的时候,就把properties的文件读到一个properties文件中.那个file的属性值(我使用的是相对目录)改掉(前面加上系统的根目录),让后把这个properties对象设置到propertyConfig中去,这样就初始化了log的设置.在后面的使用中就用不着再配置了
一般在我们开发项目过程中,log4j日志输出路径固定到某个文件夹,这样如果我换一个环境,日志路径又需要重新修改,比较不方便,目前我采用了动态改变日志路径方法来实现相对路径保存日志文件











catalina.home和catalina.base这两个属性仅在你需要安装多个Tomcat实 例而不想安装多个软件备份的时候使用,这样能节省磁盘空间。
以Tomcat6.0为例,其Tomcat目 录结构如下:

bin (运行脚本)
conf (配置文件)
lib (核心库文件)
logs (日志目录)
temp (临时目录)
webapps (自动装载的应用程序的目录)
work (JVM临时文件目录[java.io.tmpdir])

让 我们看看这些目录那些可以被多个Tomcat实例公用,其实只有 bin 和 lib 目录,其它目录conf、logs、temp、webapps和work每个Tomcat实例必须拥有其自己独立的备份。
明 白了上述关系就容易理解catalina.home和catalina.base的 用途了。
catalina.home指向公用信息的位置,就是bin和lib的父目 录。
catalina.base指 向每个Tomcat目 录私有信息的位置,就是conf、logs、temp、webapps和work的父目录。
仅运行一个Tomcat实 例时,这两个属性指向的位置是相同的。


分享到:
评论

相关推荐

    Tomcat使用Log4j输出catalina.out日志

    通过以上步骤,Tomcat服务器将使用Log4j来管理catalina.out日志,这不但解决了日志文件过大和格式不统一的问题,而且提供了更丰富的日志管理功能,例如,可以利用Log4j强大的过滤、路由和格式化等功能,将日志管理得...

    tomcat下用Log4j 按文件大小,生成catalina.out日志文件

    为了在Tomcat中使用这个配置,你需要将`log4j.properties`文件放在`$CATALINA_HOME/conf`目录下。同时,确保Tomcat启动脚本(`catalina.sh`或`catalina.bat`)包含以下行来加载Log4j配置: ```bash -Dlog4j....

    Tomcat下使用Log4j 接管 catalina.out 日志文件生成方式

    4. **启动Tomcat**:重新启动Tomcat,现在`catalina.out`将不再被更新,而是由Log4j根据`logging.properties`和`log4j.properties`的配置进行日志处理。 5. **调整日志级别**:在生产环境中,可能需要调整日志级别...

    Tomcat日志catalina.out过大解决方案--使用logback按日轮转.rar

    `Logback`由著名的`Log4j`创始人Ceki Gülcü创建,它提供了更高效的日志处理机制,并且功能更加强大,包括日志级别控制、日志格式化、日志归档等。在`Tomcat`中配置`Logback`,可以有效地控制`catalina.out`的大小...

    java中catalina.home与catalina.base区别点整理

    2. Catalina.home 和 Catalina.base 的区别:Catalina.home 指向公用信息的位置,而 Catalina.base 指向每个 Tomcat 目录私有信息的位置。 3. 实际应用:在配置日志时,使用 Catalina.base 来指定日志文件的路径。 ...

    windows下tomcat的catalina.out按天自动分割

    接下来,我们将逐步介绍如何对`startup.bat`和`catalina.bat`两个脚本文件进行修改,以实现日志文件的自动分割功能。 1. **修改`startup.bat`文件** - 打开`bin/startup.bat`文件。 - 查找并修改`call "%...

    详解关于tomcat切割catalina.out日志的三种方式

    log4j.appender.CATALINA.File=${catalina.base}/logs/catalina log4j.appender.CATALINA.Append=true log4j.appender.CATALINA.Encoding=UTF-8 log4j.appender.CATALINA.DatePattern='.'yyyy-MM-dd'.log' log4...

    tomcat9 slf4j+log4j2 写日志.zip

    3. **配置Tomcat**:在`$CATALINA_HOME/lib`目录下添加`log4j-api.jar`和`log4j-slf4j-impl.jar`,这将使Tomcat使用Log4j2作为其内部的日志系统。 4. **排除其他日志实现**:确保你的应用中没有引入其他的日志实现...

    springboot中将日志信息存储在catalina.base中过程解析

    <property name="LOG_HOME" value="${catalina.base}/logs" /> <!-- 控制台输出 --> <appender name="CONSOLE" class="ch.qos.logback.core.ConsoleAppender"> <withJansi>true <encoder class="ch.qos.logback...

    tomcat日志log4j配置的jar

    创建一个`log4j.properties`或`log4j.xml`配置文件,指定日志级别、输出格式、日志文件位置等。以下是一个简单的`log4j.properties`示例: ```properties # log4j.properties log4j.rootLogger=INFO, FILE, CONSOLE...

    tomcat日志分割

    创建或编辑`$CATALINA_HOME/conf/log4j.properties`文件,定义日志输出方式和分割规则。下面是一个基本的配置示例: ```properties # 设置根日志器的级别和appender log4j.rootLogger=INFO, CATALINA # 设置特定类...

    log4j tomcat日志jar包 tomcat-juli-adapters,log4j-1.2.15.jar,tomcat-juli.jar

    2. 配置Log4j:创建一个`log4j.properties`或`log4j.xml`配置文件,指定日志输出的位置、格式和级别。 3. 替换Tomcat的JULI配置:在`$CATALINA_BASE/conf/logging.properties`文件中,将日志处理器指向Log4j适配器,...

    cronolog-1.6.2.tar.gz+catalina.sh

    nohup $JAVA_OPTS -Djava.util.logging.config.file=$CATALINA_BASE/conf/logging.properties -Djava.awt.headless=true -classpath $CLASSPATH -Dcatalina.base=$CATALINA_BASE -Dcatalina.home=$CATALINA_HOME -D...

    tomcat日志过大问题

    - 输出的Log文件格式为`catalina.out.2017-09-07`等。 2. **后续管理**: - 按照这种方式管理日志文件后,可以更方便地进行日志的查询、归档以及清理工作。 - 通过定期清理旧的日志文件,可以有效减少磁盘空间的...

    tomcat log4j 配置及需要的几个jar

    log4j.appender.FILE.File=${catalina.home}/logs/myapp.log log4j.appender.FILE.Append=true log4j.appender.FILE.Threshold=DEBUG log4j.appender.FILE.layout=org.apache.log4j.PatternLayout log4j....

    Linux tomcat下catalina.out日志文件分割

    总之,通过Log4j对`catalina.out`进行日志分割,不仅可以实现日志的自动滚动,还可以定制日志级别、格式和存储位置,极大地提高了日志管理的效率和灵活性。在实际运维中,这是一项非常实用的技术。

    omcat-juli.jar,tomcat-juli-adapters.jar,log4j-1.2.17.jar

    本文将详细讲解如何在Tomcat8环境下使用Log4j进行日志管理,实现日志按天存放并转换为JSON格式,以及涉及的依赖包的功能和用法。 首先,我们要关注的是`omcat-juli.jar`和`tomcat-juli-adapters.jar`这两个文件。...

    log4j2的配置.zip

    Log4j2是一款广泛使用的Java日志框架,它提供了丰富的日志记录功能,适用于各种规模的应用程序。在Java开发中,正确配置Log4j2对于调试、监控和问题排查至关重要。下面将详细介绍Log4j2的依赖包以及配置的相关知识点...

    Log4j中相对路径的问题

    另一种方法是使用环境变量,如`log4j.appender.R.File=${catalina.base}/logs/logs_tomcat.log`,这里的`${catalina.base}`是Tomcat的安装目录环境变量。这种方法假设你的环境已经设置了正确的环境变量,Log4j会根据...

Global site tag (gtag.js) - Google Analytics