第一篇:用 Java 實(shí)現(xiàn)的日志切割清理工具源碼-天翼開發(fā)者社區(qū)
用 Java 實(shí)現(xiàn)的日志切割清理工具源碼
對于服務(wù)器的日常維護(hù)來說,日志清理是非常重要的事情,如果殘留日志過多則嚴(yán)重浪費(fèi)磁盤空間同時(shí)影響服務(wù)的性能。如果用手工方式進(jìn)行清理,會(huì)花費(fèi)太多時(shí)間,并且很多時(shí)候難以滿足實(shí)際要求。例如:如何在每個(gè)星期六凌晨3點(diǎn)把超過2G大的日志文件進(jìn)行切割,保留最新的100M日志記錄?
網(wǎng)上沒有發(fā)現(xiàn)能滿足本座要求的日志切割工具,因此花了一些閑暇時(shí)間自己寫了一個(gè)。由于要在多個(gè)平臺(tái)上使用,為了方便采用 Java 實(shí)現(xiàn)。本工具命名為 LogCutter,主要有以下特點(diǎn):
1.支持 Linux、Mac 和 Windows 等所有常見操作系統(tǒng)平臺(tái) 2.支持命令行交互式運(yùn)行
3.支持后臺(tái)非交互式運(yùn)行(Linux/MAC 下使用 daemon 進(jìn)程實(shí)現(xiàn),Windows 用系統(tǒng)
Service 實(shí)現(xiàn))
4.支持兩種日志清理方式(刪除日志文件或切割日志文件)
5.支持對 GB18030、UTF-
8、UTF-16LE、UTF-16BE 等常用日志文件類型進(jìn)行切割(不會(huì)發(fā)生切掉半個(gè)字符的情況)
6.高度可配置(程序執(zhí)行周期、要?jiǎng)h除的日志文件過期時(shí)間、要切割的日志文件閥值和保留大小等均可配置
? 使用方法:
******************************************************* **** LogCutter-Bruce Liang, all rights reserved.**** *******************************************************
一、啟動(dòng)方式
-------------------1)Windows A)前臺(tái)運(yùn)行: >./run.bat B)后臺(tái)運(yùn)行: >./LogCutter.exe {-install-demand(安裝手動(dòng)啟動(dòng)服務(wù))-install-auto(安裝自動(dòng)http://004km.cn
天翼空間應(yīng)用工廠
啟動(dòng)服務(wù))-start(啟動(dòng)服務(wù))-stop(停止服務(wù))-status(查看服務(wù)狀態(tài))}
*** 注 *** @ LogCutter.exe 以 Windows 系統(tǒng)服務(wù)的方式運(yùn)行,安裝好后也可以通過 Windows 服務(wù)管理器進(jìn)行管理
@ LogCutter.exe 依賴 JRE 1.6, 因此必須在注冊表或環(huán)境變量中設(shè)置 %JAVA_HOME%
2)Linux / Unix A)前臺(tái)運(yùn)行: $./run.sh B)后臺(tái)運(yùn)行: $./run.sh-d
*** 注 *** @ 可以設(shè)置為開機(jī)時(shí)自動(dòng)后臺(tái)運(yùn)行,方法如下:
$ vi /etc/rc.d/rc.local(加入: ${YOUR_LOGCUTTER_PATH}/run.sh-d)-------------------
二、配置文件
-------------------http://004km.cn
天翼空間應(yīng)用工廠
1)程序配置文件:./conf/config.xml 2)日志配置文件:./conf/log4j.properties(默認(rèn))-------------------
三、環(huán)境要求
-------------------1)Java 版 本: JRE 1.6 以上
2)依賴程序包: dom4j、log4j、juniversalchardet-----------------
天翼空間應(yīng)用工廠
http://004km.cn 天翼空間應(yīng)用工廠