`

Tomcat 控制台信息按日保存到日誌文件

 
阅读更多

tomcat都是按日保存日志文问分割

 

转:http://tanrishou.blog.163.com/blog/static/1502502009924112045630/

一、本文基于的环境:

操作系统:Linux(redhat)、Windows(XP、2003)

JDK版本:j2sdk1.4.2_04

Tomcat版本:tomcat-5.0.28

Cronolog版本:cronolog-1.6.2.tar.gz

                     cronolog-1.6.1-win32.zip

本文修改后的tomcat都是按日保存日志文件,文件格式如:catalina.2009-06-07.out

二、cronolog的简介(下载cronolog

Cronolog是一款日志轮循(rotation)工具,可以用它来把Apache、Tomcat等Web服务器上输出的日志切分成按日或月保存的文件。

Cronolog从标准输入中读取日志内容,然后把它们写到按指定格式命名的日志文件中。日志文件的名称可以加入一段日期标记(如Catalina.2009-06-07.out),当日期改变后Cronolog会把之前的日志文件关闭,再打开一个包含新日期的日志文件(如Catalina.2009-06-08.out)。

利用Cronolog可以完美解决tomcat中的catalina.out日志文件不断增大,且不能在tomcat运行期间删除的问题。

需要注意的一个问题是,日期改变后cronolog并不是马上切换日志文件,而是需要有新的日志输出才能触发cronolog切换日志文件。所以如果你想在2009-06-08删除2009-06-07的日志文件,如果从2009-06-08的00:00开始到你执行删除时都没有日志输出,则2009-06-07的日志文件可能仍然被占用着,导致删除失败。

 

 

 

三、Linux下使用Cronolog轮循(rotating)Tomcat日志

(1)首先安装cronolog(cronolog-1.6.2.tar.gz放于/opt下)

cd /opt

gzip –d cronolog-1.6.2.tar.gz

tar –xvf cronolog-1.6.2.tar

cd cronolog-1.6.2

./configure --prefix=/usr/local/cronolog //按自己需要指定安装路径,或不指定

make

make install

 

 

    (2)修改Tomcat配置文件

先停止tomcat服务,然后修改以下文件:

%CATALINA_HOME%/bin/catalina.sh

org.apache.catalina.startup.Bootstrap "$@" start \

>> "$CATALINA_BASE"/logs/catalina.out 2>&1 &

 

替换为:

org.apache.catalina.startup.Bootstrap "$@" start 2>&1 \

| /usr/local/cronolog/sbin/cronolog "$CATALINA_BASE"/logs/catalina.%Y-%m-%d.out >> /dev/null &

 

 

 

另外删除行:

touch "$CATALINA_BASE"/logs/catalina.out

 

修改完毕后重新启动tomcat服务。

 

 

 

四、Windows下使用Cronolog轮循(rotating)Tomcat日志

(1)安装cronolog

解压cronolog-1.6.1-win32.zip,将cronolog.exe文件拷贝到Tomcat的bin目录下。

 

 

 

(2)修改Tomcat配置

在Windows下,tomcat默认是把日志内容直接输出到控制台的,而不是保存在catalina.out文件,所以要先修改为把日志内容输出到文件。

首先修改%CATALINA_HOME%/bin/startup.bat,将

call "%EXECUTABLE%" start %CMD_LINE_ARGS%

替换为:

call "%EXECUTABLE%" run %CMD_LINE_ARGS%

 

 

 

然后修改%CATALINA_HOME%/bin/catalina.bat,将

rem Execute Java with the applicable properties

if not "%JPDA%" == "" goto doJpda

if not "%SECURITY_POLICY_FILE%" == "" goto doSecurity

%_EXECJAVA% %JAVA_OPTS% %CATALINA_OPTS% %DEBUG_OPTS% -Djava.endorsed.dirs="%JAVA_ENDORSED_DIRS%" -classpath "%CLASSPATH%" -Dcatalina.base="%CATALINA_BASE%" -Dcatalina.home="%CATALINA_HOME%" -Djava.io.tmpdir="%CATALINA_TMPDIR%" %MAINCLASS% %CMD_LINE_ARGS% %ACTION%

goto end

:doSecurity

%_EXECJAVA% %JAVA_OPTS% %CATALINA_OPTS% %DEBUG_OPTS% -Djava.endorsed.dirs="%JAVA_ENDORSED_DIRS%" -classpath "%CLASSPATH%" -Djava.security.manager -Djava.security.policy=="%SECURITY_POLICY_FILE%" -Dcatalina.base="%CATALINA_BASE%" -Dcatalina.home="%CATALINA_HOME%" -Djava.io.tmpdir="%CATALINA_TMPDIR%" %MAINCLASS% %CMD_LINE_ARGS% %ACTION%

goto end

:doJpda

if not "%SECURITY_POLICY_FILE%" == "" goto doSecurityJpda

%_EXECJAVA% %JAVA_OPTS% %CATALINA_OPTS% -Xdebug -Xrunjdwp:transport=%JPDA_TRANSPORT%,address=%JPDA_ADDRESS%,server=y,suspend=n %DEBUG_OPTS% -Djava.endorsed.dirs="%JAVA_ENDORSED_DIRS%" -classpath "%CLASSPATH%" -Dcatalina.base="%CATALINA_BASE%" -Dcatalina.home="%CATALINA_HOME%" -Djava.io.tmpdir="%CATALINA_TMPDIR%" %MAINCLASS% %CMD_LINE_ARGS% %ACTION%

goto end

:doSecurityJpda

%_EXECJAVA% %JAVA_OPTS% %CATALINA_OPTS% -Xdebug -Xrunjdwp:transport=%JPDA_TRANSPORT%,address=%JPDA_ADDRESS%,server=y,suspend=n %DEBUG_OPTS% -Djava.endorsed.dirs="%JAVA_ENDORSED_DIRS%" -classpath "%CLASSPATH%" -Djava.security.manager -Djava.security.policy=="%SECURITY_POLICY_FILE%" -Dcatalina.base="%CATALINA_BASE%" -Dcatalina.home="%CATALINA_HOME%" -Djava.io.tmpdir="%CATALINA_TMPDIR%" %MAINCLASS% %CMD_LINE_ARGS% %ACTION%

goto end

 

 

替换为:

 

 

rem Execute Java with the applicable properties

if not "%JPDA%" == "" goto doJpda

if not "%SECURITY_POLICY_FILE%" == "" goto doSecurity

%_EXECJAVA% %JAVA_OPTS% %CATALINA_OPTS% %DEBUG_OPTS% -Djava.endorsed.dirs="%JAVA_ENDORSED_DIRS%" -classpath "%CLASSPATH%" -Dcatalina.base="%CATALINA_BASE%" -Dcatalina.home="%CATALINA_HOME%" -Djava.io.tmpdir="%CATALINA_TMPDIR%" %MAINCLASS% %CMD_LINE_ARGS% %ACTION% |%CATALINA_BASE%\bin\cronolog %CATALINA_BASE%\logs\catalina.%date:~0,10%.out >> null (应该是catalina.%%Y-%%m-%%d.out)

goto end

:doSecurity

%_EXECJAVA% %JAVA_OPTS% %CATALINA_OPTS% %DEBUG_OPTS% -Djava.endorsed.dirs="%JAVA_ENDORSED_DIRS%" -classpath "%CLASSPATH%" -Djava.security.manager -Djava.security.policy=="%SECURITY_POLICY_FILE%" -Dcatalina.base="%CATALINA_BASE%" -Dcatalina.home="%CATALINA_HOME%" -Djava.io.tmpdir="%CATALINA_TMPDIR%" %MAINCLASS% %CMD_LINE_ARGS% %ACTION% |%CATALINA_BASE%\bin\cronolog %CATALINA_BASE%\logs\catalina.%date:~0,10%.out >> null (应该是catalina.%%Y-%%m-%%d.out)

goto end

:doJpda

if not "%SECURITY_POLICY_FILE%" == "" goto doSecurityJpda

%_EXECJAVA% %JAVA_OPTS% %CATALINA_OPTS% -Xdebug -Xrunjdwp:transport=%JPDA_TRANSPORT%,address=%JPDA_ADDRESS%,server=y,suspend=n %DEBUG_OPTS% -Djava.endorsed.dirs="%JAVA_ENDORSED_DIRS%" -classpath "%CLASSPATH%" -Dcatalina.base="%CATALINA_BASE%" -Dcatalina.home="%CATALINA_HOME%" -Djava.io.tmpdir="%CATALINA_TMPDIR%" %MAINCLASS% %CMD_LINE_ARGS% %ACTION% |%CATALINA_BASE%\bin\cronolog %CATALINA_BASE%\logs\catalina.%date:~0,10%.out >> null (应该是catalina.%%Y-%%m-%%d.out)

goto end

:doSecurityJpda

%_EXECJAVA% %JAVA_OPTS% %CATALINA_OPTS% -Xdebug -Xrunjdwp:transport=%JPDA_TRANSPORT%,address=%JPDA_ADDRESS%,server=y,suspend=n %DEBUG_OPTS% -Djava.endorsed.dirs="%JAVA_ENDORSED_DIRS%" -classpath "%CLASSPATH%" -Djava.security.manager -Djava.security.policy=="%SECURITY_POLICY_FILE%" -Dcatalina.base="%CATALINA_BASE%" -Dcatalina.home="%CATALINA_HOME%" -Djava.io.tmpdir="%CATALINA_TMPDIR%" %MAINCLASS% %CMD_LINE_ARGS% %ACTION% |%CATALINA_BASE%\bin\cronolog %CATALINA_BASE%\logs\catalina.%date:~0,10%.out >> null (应该是catalina.%%Y-%%m-%%d.out)

goto end

 

    修改完之后重新启动tomcat。

 

 

用于Windows环境的补充(2009-06-13):

        写这篇文章的时候,在Windows下的配置还没有测试过,其实上面的写法是错误的!之前在windows下日志文件名使用“catalina.%Y-%m-%d.out”的方式生成的日志文件变成“catalina.md.out”的样子,并不是日期!然而使用上面的“catalina.%date:~0,10%.out"得出的文件名是“catalina.2009-06-13.out",其中的日期是tomcat启动时的日期,但是日志文件并不会随着日期改变而轮循(rotating)!

        其实不管是在linux还是windows下,cronolog接受的日期格式都是“%Y%m%d%H%M“这样的格式。%Y表年,%m表月,%d表日,%H表小时,%M表分钟。只有使用这样的格式指定日志输出文件的名称,cronolog才会按日期、时间的变化生成新的日志文件。

        然而,在Windows下需要分两种情况(刚在cronolog-1.6.1.win32所带的INSTALL说明中看到):

Configuration for use with NT service:

TransferLog "|c:/apache/bin/convlog.exe c:/apache/logs/access%Y%m%d.log"

 

Configuration for use from command line:

TransferLog "|c:/apache/bin/convlog.exe c:/apache/logs/access%%Y%%m%%d.log"

 

        也就是说,如果是通过命令行方式来启动tomcat的话,日志文件名的写法必须是“catalina.%%Y-%%m-%%d.out”才是正确的。

分享到:
评论

相关推荐

    tomcat控制台详细错误日志设置

    通过以上步骤,你不仅可以得到更详细的Tomcat控制台错误日志,还能有效地管理和利用这些日志信息,提高问题排查效率。在实际操作中,请根据你的具体需求和环境调整相关配置。记得定期清理和归档日志,以免日志文件过...

    idea启动tomcat项目控制台乱码问题.docx

    将`GBK`改为`UTF-8`,确保日志文件的编码与预期一致。修改后,保存文件。 4. **设置项目的编码** 在Idea中,每个项目的编码也需要设置为UTF-8。在项目设置中,选择`File` > `Settings` > `Project Structure` > `...

    tomcat日志详细说明

    日期.log**:这是Tomcat最核心的日志文件之一,记录了Tomcat启动过程中的详细信息,包括JVM参数、操作系统信息等。例如,在成功启动时,你可能会看到如下的日志记录: ``` 24-Dec-2018 13:30:02.664 信息 [main] ...

    最新tomcat日志查看包

    - **日志分割**:可以通过配置实现日志文件按大小或日期自动滚动,防止单个日志文件过大。 - **日志过滤**:通过定义过滤规则,可以选择性地记录特定类或方法的日志,避免过多无关信息。 - **日志归档**:可以配置...

    解决idea工具tomcat控制台乱码问题

    在开发Java Web应用程序时,...总的来说,解决IDEA中Tomcat控制台乱码问题的关键在于确保整个开发环境的编码一致性,从IDEA自身到JVM,再到项目配置。通过上述步骤,你可以有效地解决这个问题,使得开发过程更加顺畅。

    tomcat_linux

    4. 日志查看:Tomcat的日志文件位于`logs`目录下,包括`catalina.out`、`localhost_access_log.*.txt`等。 七、安全注意事项 在生产环境中,确保对Tomcat进行必要的安全配置,例如: 1. 修改默认的管理员用户名和...

    Tomcat 5帮助文档

    10. **错误处理与日志记录**:Tomcat将错误信息输出到logs目录下的日志文件,通过修改logging.properties文件可以自定义日志级别和格式。 11. **管理工具**:Tomcat提供了诸如Manager和HostManager这样的管理应用,...

    apache-tomcat-8.5.28-windows-x64

    Tomcat的日志信息默认保存在`logs`目录下,包括`catalina.out`、`host-manager`、`manager`等不同类型的日志文件。通过配置`logging.properties`文件,可以自定义日志级别和输出位置。 **故障排查** 当遇到问题时...

    tomcat在myeclipse中的安装

    - "Tomcat base directory"和"Tomcat temp directory"通常会自动填充,这些路径用于存放日志和临时文件。确保这些路径正确无误,如果没有,你可以手动设定。 - 如果一切正常,点击“OK”以保存设置。 6. **启动...

    tomcat目录介绍2

    `log`目录是一个空路径,它主要用于保存Tomcat每次运行后产生的日志文件。这些日志文件包含了Tomcat在启动、运行过程中产生的各种信息,如错误日志、访问日志等。通过查看这些日志文件,我们可以了解Tomcat服务器的...

    tomcat显示出现中文乱码问题.docx

    这样,Tomcat控制台输出的日志就会按照GBK编码进行处理,从而解决中文乱码问题。 4. 保存修改后,需要重启Tomcat服务器,让新的配置生效。重启命令通常在Tomcat的bin目录下执行`shutdown.sh`(Linux/Mac)或`...

    tomcat安装包

    4. **logs**:日志文件存放的地方,记录了Tomcat运行时的各种信息和错误。 5. **temp**:临时文件夹,Tomcat运行时生成的临时文件会放在这里。 6. **webapps**:这是Web应用程序的根目录,新部署的应用会放在这里,...

    Linux的Tomcat配置

    这将启动Tomcat服务器,如果一切正常,控制台会显示相关的启动信息。 四、验证Tomcat运行 在浏览器中输入`http://localhost:8080`,如果看到Tomcat的默认欢迎页面,说明配置成功。 五、设置Tomcat开机自启动 为了...

    tomcat6.0安装配置

    4. **日志管理**:Tomcat的日志文件默认位于$CATALINA_HOME/logs目录下,可以根据需要调整日志级别和存储位置。 5. **上下文路径配置**:在$CATALINA_HOME/webapps目录下部署应用时,应用的URL默认为`...

    Tomcat安全加固操作清单

    1. **要求**:由于Tomcat本身没有提供限制日志数量的功能,需要手动清理日志文件,并确保至少保存了两个月的日志数据。 #### 七、会话超时设置 **背景**:当一方长时间无响应时,另一方应能自动结束会话。 **具体...

    Linux中tomcat8

    1. 将你的war文件复制到 `$CATALINA_HOME/webapps` 目录下,Tomcat会自动解压并部署。 2. 或者,通过Tomcat Manager(需要在`tomcat-users.xml`中配置用户权限)在线部署war文件。 六、安全注意事项 1. 更新Tomcat...

    apache-tomcat-7.0.108.7z

    存储Tomcat运行时的日志文件,如`catalina.out`记录了控制台输出,`host-manager_access.log`和`manager_access.log`记录了管理界面的访问日志,`localhost*.log`记录了每个应用的请求日志。 5. **RUNNING.txt**:...

    tomcat-8.0.14—linux安装包

    根据实际需求,你可能需要调整Tomcat的配置文件,比如`server.xml`、`web.xml`等,以优化性能或增加日志记录。同时,可以使用工具如`top`或`htop`监控Tomcat的资源使用情况。 通过以上步骤,你已经成功在Linux...

    apache-tomcat-7.0.94.zip

    5. `logs`: 保存Tomcat的日志文件,用于诊断和调试问题。 6. `temp`: Tomcat运行时的临时文件存放地。 7. `work`: 存放编译后的JSP文件和应用的类文件。 为了测试Tomcat是否正常工作,你可以尝试部署一个简单的...

    tomcat5.5 admin配置

    Tomcat 5.5是Apache软件基金会的Jakarta...在实践中,你可能会遇到其他问题,如权限问题、端口冲突等,解决这些问题通常需要检查日志文件或查阅官方文档。如果你对任何步骤有疑问,都可以进一步研究或寻求社区支持。

Global site tag (gtag.js) - Google Analytics