转载至:http://www.andowson.com/posts/list/403.page
依據Tomcat的網站上的說法http://wiki.apache.org/tomcat/FAQ/Logging#Q6:
System.out 和 System.err 都被列印到 catalina.out。
catalina.out 不會 rotate。
如果您使用了 logging 機制,就不會有任何東西被寫到標準輸出了,所以這應該不會是個問題。
可是實際上發現,雖然有設了log4j之類的 logging 機制,但寫程式的人如果還是寫成System.out.println()或是遇到exception時都來個e.printStackTrace(),這些輸出最後還是通通送到catalina.out去了。日子久了,這個檔案還是會日漸變大起來,如果沒有加以管理最後就會長大成好幾GB的龐然大物。(這時千萬不要再用vi去開它了。)
網路上找了一下,針對在Linux環境下執行Tomcat的部份,發現有個不錯的工具軟體cronolog可以協助Web Server之類的做 log 檔的 rotate,詳細的運作原理可能大家得自己去這個網站上查,我的認知大致如下:
Tomcat先把輸出寫到 console(標準輸出) 然後透過 pipe (|) 轉為 cronolog 的輸入,由cronolog針對一個事先給定的檔名的命名規則,去過濾資料,定期關閉舊檔,然後再開啟新檔。如果我們將檔名的命名規則設為catalina.out.%Y-%m-%d,就可以做到每天開一個新的catalina.out.yyyy-mm-dd的檔案了。
以下是簡單的過程說明:
1.安裝cronolog
2.修改catalina.sh
3.重新啟動Tomcat
1.安裝cronolog
wget http://cronolog.org/download/cronolog-1.6.2.tar.gz
tar zxvf cronolog-1.6.2.tar.gz
cd cronolog-1.6.2
./configure
make
make install
用which cronolog可以查到安裝的路徑,預設應該是/usr/local/sbin/cronolog,這個路徑待會在修改catalina.sh時會用到。
2.修改catalina.sh
以Tomcat 6.0.24的版本為例
將
if [ -z "$CATALINA_OUT" ] ; then
CATALINA_OUT="$CATALINA_BASE"/logs/catalina.out
fi
修改為
if [ -z "$CATALINA_OUT" ] ; then
CATALINA_OUT="$CATALINA_BASE"/logs/catalina.out.%Y-%m-%d
fi
將
touch "$CATALINA_OUT"
改為
#touch "$CATALINA_OUT"
將
org.apache.catalina.startup.Bootstrap "$@" start \
>> "$CATALINA_OUT" 2>&1 &
修改為
org.apache.catalina.startup.Bootstrap "$@" start 2>&1 \
| /usr/local/sbin/cronolog "$CATALINA_OUT" >> /dev/null &
3.重新啟動Tomcat
service tomcat restart
可以在Tomcat的logs目錄底下找到以系統日期為結尾的catalina.out.yyyy-mm-dd的檔案,這樣子就成功了。
後續就是持續觀察看看是不是每天都有產生一個新的catalina.out.yyyy-mm-dd檔案。然後再安排定期刪除這些較舊的log檔即可。
分享到:
相关推荐
Linux tomcat下catalina.out日志文件分割 前言: tomcat默认使用Java.util.logging记录日志,默认只记录tomcat的日志,不记录应用的日志。tomcat支持采用log4j进行日志记录,配置方法如下: 1.更新最新的tomcat_juli...
通过这样的脚本和定时任务,我们可以在Linux上的Tomcat环境中有效地管理和分割`catalina.out`日志,便于日后的检索和分析。这不仅可以节省存储空间,还可以帮助我们更好地跟踪和诊断Tomcat服务的运行状况。
本主题主要涉及两个知识点:一是如何理解并使用`catalina.out`文件,二是如何在Linux环境下通过工具进行日志文件分割。 1. `catalina.out`文件详解: - `catalina.out`是Tomcat的默认日志文件,包含了控制台输出的...
这样,`catalina.out`将会按照设定的时间间隔自动分割并压缩,防止日志文件过大。 3. **调整应用日志级别** 另外,你可以通过调整应用中的日志级别来减少`catalina.out`的生成量。例如,如果应用使用了Log4j或...
### 关于"catalina.out"日志文件及分割方法 #### 一、问题背景与重要性 在IT运维工作中,日志文件对于诊断系统错误、监控应用运行状态以及进行性能优化等方面发挥着至关重要的作用。然而,随着系统运行时间的增长...
标题提及的"Catalina.out日志分割工具"就是专为Linux环境下Tomcat设计的一个解决方案。这个工具能够自动地将过大的`Catalina.out`文件切割成多个小文件,从而避免单个日志文件过大带来的问题。它通常包含一个脚本...
标题中的“cronolog切割tomcat catalina.out 文件 tomcat日志按小时切割”是指使用cronolog工具对Tomcat服务器的日志文件,特别是`catalina.out`文件进行按小时分割的实践方法。`catalina.out`是Tomcat默认的日志...
接下来,当Tomcat运行并产生日志时,`catalina.out`会被cronolog按照指定的时间间隔自动分割,生成新的文件。这样,你可以轻松地查看不同日期的日志,同时避免单个日志文件过大。 在实际操作中,你可能还需要考虑...
"cronolog-catalina.out" 这个标题可能指的是 cronolog 被用于管理和分割 Apache Tomcat 的 `catalina.out` 日志文件。`catalina.out` 文件是 Tomcat 服务器的标准输出和错误输出的默认聚合点,包含了应用服务器运行...
Tomcat服务器在运行时会产生大量的日志信息,通常这些信息会被记录在catalina.out文件中。随着时间的推移,这个日志文件会变得越来越大,不仅占用大量的磁盘空间,而且会影响日志的读取效率。因此,对Tomcat的日志...
"Linux中Tomcat日志切割"是指通过特定的工具或脚本,将Tomcat的日志文件`catalina.out`按照日期进行分割,以实现日志的有序管理和存储。通常,日志切割有助于保持日志文件的大小可控,避免单个文件过大导致的读写...
找到Tomcat的启动脚本`catalina.sh`,并在启动命令后面添加管道命令,使得日志输出通过cronolog进行处理: ``` org.apache.catalina.startup.Bootstrap "$@" start \\ | /usr/local/sbin/cronolog "$CATALINA_...
要想分割tomcat的catalina.out,需作如下工作: 修改tomcat bin目录下的catalina.sh文件中的 org.apache.catalina.startup.Bootstrap “$@” start \ >> “$CATALINA_BASE”/logs/catalina.out 2>&1 & 为 org....
我们可以根据日志文件的大小、天数等来转储,便于对日志文件管理,一般都是通过cron计划任务来完成的,让日志切割实现按小时分割,按天分割等。 二.Logrotate运行机制 系统会定时运行logrotate,一般是每天一次。...
Linux Tomcat下使用Log4j接管catalina.out 日志文件生成方式,按天分割,解决catalina.out日志文件过大问题 1、将log4j-1.2.17.jar、tomcat-juli-adapters.jar两个jar包和log4j.properties文件拷贝到 Tomcat 的 lib...
通过以上步骤,你便能在Windows环境中实现类似于Unix/Linux的定时日志分割功能,有效地管理和优化`catalina.out`日志文件。这种方法不仅可以帮助节省磁盘空间,还可以提高日志分析的效率,特别是在需要排查问题时,...
在本教程中,我们将深入探讨如何在Linux环境中安装Cronolog,并将其应用于Apache Tomcat服务器的日志轮转,特别是针对`catalina.out`日志。 首先,我们需要理解Cronolog的工作原理。Cronolog基于时间戳对日志进行...
cronolog是一款广泛使用的日志管理工具,特别是在Linux系统中,它能够按照用户设定的时间间隔自动分割日志文件,便于管理和分析。在Tomcat这样的Java应用服务器中,catalina.out文件是默认的日志输出文件,它记录了...
Cronolog 分割 Tomcat8 Catalina.out日志。 默认情况下,tomcat的catalina.out日志文件是没有像其它日志一样,按日期进行分割,而是全部输出全部写入到一个catalina.out,这样日积月累就会造成.out日志越来越大,给...