Log-Cutter 是JessMA开源组开发的一个简单实用的日志切割清理工具。对于服务器的日常维护来说,日志清理是非常重要的事情,如果残留日志过多则严重浪费磁盘空间同时影响服务的性能。如果用手工方式进行清理,会花费太多时间,并且很多时候难以满足实际要求。例如:如何在每个星期六凌晨3点把超过 2G 大的日志文件进行切割,保留最新的 100M 日志记录? 网上没有发现能满足本座要求的日志切割工具,因此花了一些闲暇时间自己写了一个。由于要在多个平台上使用,为了方便采用 Java 实现。本工具命名为 Log-Cutter,主要有以下特点:

  1. 支持 Linux、Mac 和 Windows 等所有常见操作系统平台
  2. 支持命令行交互式运行
  3. 支持后台非交互式运行(Linux/MAC 下使用 daemon 进程实现,Windows 用系统 Service 实现)
  4. 支持两种日志清理方式(删除日志文件或切割日志文件)
  5. 支持对 GB18030、UTF-8、UTF-16LE、UTF-16BE 等常用日志文件类型进行切割
  6. 高度可配置(程序执行周期、要删除的日志文件过期时间、要切割的日志文件阀值和保留大小等均可配置
  • 使用方法:
**************************************************************
**** LogCutter - JessMA Open Source, all rights reserved. ****
**************************************************************

一、启动方式
--------------------------------------------------
1) Windows
    A) 前台运行: > ./run.bat [ -f config-file ]
    B) 后台运行: > LogCutter.exe    {    
                                                     -install-demand  (安装手动启动服务)
                                                      -install-auto    (安装自动启动服务)
                                                     -uninstall       (删除服务)
                                                     -start           (启动服务)
                                                     -stop            (停止服务)
                                                     -status          (查看服务状态)
                                                  }

*** 注 *** 
        @ LogCutter.exe 以 Windows 系统服务的方式运行,安装好后也可以通过 Windows 服务管理器进行管理
        @ LogCutter.exe 是 32 位程序,LogCutter_x64.exe 是 64 位程序,根据需要使用其中之一
        @ LogCutter.exe 依赖 JRE 1.6, 因此必须在注册表或环境变量中设置 %JAVA_HOME%

2) Linux / Unix
    A) 前台运行: $ ./run.sh [ -f config-file ]
    B) 后台运行: $ ./run.sh [ -f config-file ] -d

*** 注 ***
    @ 可以设置为开机时自动后台运行,方法如下:

$ vi /etc/rc.d/rc.local  ( 加入: ${YOUR_LOGCUTTER_PATH}/run.sh -d )
            
--------------------------------------------------

二、配置文件
--------------------------------------------------
1) 程序配置文件: ./conf/config.xml (默认)
2) 日志配置文件: ./conf/log4j.properties (默认)
--------------------------------------------------

三、环境要求
--------------------------------------------------
1) Java 版 本: JRE 1.6 以上
2) 依赖程序包: dom4j、log4j、juniversalchardet
--------------------------------------------------

四、操作指南
--------------------------------------------------
参考:《操作指南

  • 配置文件
<?xml version="1.0" encoding="UTF-8"?>
<CONFIG>
<global>
<!-- 开始日志检查延时 (小时), 默认: 0 (立刻开始) -->
<start-check-delay>1</start-check-delay>
<!-- 日志检查间隔 (小时), 默认: 72 -->
<check-interval></check-interval>
<!-- Log4J 配置文件, 默认: ${CLASS_ROOT}/../conf/log4j.properties -->
<log4j-config-file></log4j-config-file>
<!-- 程序锁, 默认: ${CLASS_ROOT}/../${APP_NAME}.lock -->
<lock-file></lock-file>
</global>
<!-- 要删除的日志文件列表 -->
<!-- delete-files.expire: 日志文件过期时间(天), 默认: 90 -->
<delete-files expire="30">
<!-- files: 文件名称(不包含目录), 必须填写, 可包含通配符 -->
<!-- files.path: 文件所在目录, 必须填写, 不能包含通配符 -->
<file path="D:\LogCutter\logs">LogCutter.log*</file>
<file path="D:\hMailServer\Logs">*.log</file>
<file path="D:\Tomcat 6.0\logs">*.log</file>
</delete-files>
<!-- 要截断的日志文件列表 -->
<!-- cut-files.threshold: 日志文件截断阀值(KB), 默认: 10240 -->
<!-- cut-files.reserve: 日志文件保留内容(KB), 默认: 1024 -->
<!--
<!注!> 'cut-files.reserve' 是保留内容的近似值得, 实际内容按行取整保留
如下列日志文件内容:
...... ...... ......
line1: xxxxxxxxxxxxxxxxxxxxx
line2: xxxxxxxxxxPyyyyyyyyyy
line3: zzzzzzzzzzzzzzzzzzzzz
line4: zzzzzzzzzzzzzzzzzzzzz
...... ...... ...... (EOF)
'P'为定位得到的保留起点, 程序实际会在'P'点开始查找下一个换行符,
从该换行符的后一个字符开始保留, 也就是从第三行开始保留到文件末尾
-->
<cut-files threshold="10240" reserve="512">
<file path="D:\Apache2.2\logs">*.log</file>
<file path="D:\MySQL\MySQL Server 5.1\Datafiles\data">*.err</file>
</cut-files>
</CONFIG>

Log-Cutter 1.0.3 更新:

1) 程序包路径改为 org.jessma.logcutter.*
  2) 增加 Win64 服务程序 LogCutter_x64.exe
  3) 完善使用帮助文档
  4) 程序代码中加入 License 注释


CodeProject

跨平台日志清理工具 Log-Cutter v1.0.3 正式发布的更多相关文章

  1. 跨平台日志清理工具 Log-Cutter v2.0.1 正式发布

    Log-Cutter 是JessMA开源组织开发的一个简单实用的日志切割清理工具.对于服务器的日常维护来说,日志清理是非常重要的事情,如果残留日志过多则严重浪费磁盘空间同时影响服务的性能.如果用手工方 ...

  2. 跨平台日志清理工具 Log-Cutter v2.0.1 RC-1 发布

    Log-Cutter 是JessMA开源组织开发的一个简单实用的日志切割清理工具.对于服务器的日常维护来说,日志清理是非常重要的事情,如果残留日志过多则严重浪费磁盘空间同时影响服务的性能.如果用手工方 ...

  3. arcconf工具相关命令V1.0

    arcconf工具相关命令V1.0 清除当前所有raid配置 Arcconf  delete  1  array  all       #删除所有逻辑盘 Arcconf  uninit  1  all ...

  4. DotNetCore跨平台~问题~NETCoreAPP, Version=v1.0' compatible with one of the target runtimes: 'win10-x64

    回到目录 新建console项目之后,编译程序出现以下错误: Can not find runtime target for framework '.NETCoreAPP, Version=v1.0' ...

  5. 日志分析工具Log Parser介绍

    摘要: 微软动态CRM专家罗勇 ,回复321或者20190322可方便获取本文,同时可以在第一间得到我发布的最新博文信息,follow me! 分析Dynamics 365 Customer Enga ...

  6. 日志分析工具 Log Parser

    微软的Log Parser, 下载地址 https://www.microsoft.com/en-us/download/details.aspx?id=24659 支持多种文件格式的分析,输入输出, ...

  7. arcconf工具操作手册V1.0

    arcconf工具操作手册 1.1.1  arcconf工具初始化和去初始化硬盘 [命令功能] PMC阵列卡系统下初始化硬盘,可以将raw盘状态变成ready状态,以便进一步组建raid和设置热备盘: ...

  8. 网盘直链工具 winform版 V1.0

    软件需要.net2.0支持 win7及以上版本用户无需安装 xp用户需要安装 支持网盘:好盘 坚果云 百度云 乐视云 华为网盘 微云 新浪网盘 126disk 速度盘 乐齐盘 天空网盘 千脑网盘 可乐 ...

  9. IIS日志分析工具-Log Parser

    下载地址:https://www.microsoft.com/en-us/download/details.aspx?id=24659 参考链接: https://www.cnblogs.com/fu ...

随机推荐

  1. Visual-Studio-2015-Cheat-Sheet Visual Studio 2015 快捷键列表

    PDF 文件下载 http://files.cnblogs.com/files/JamesLi2015/Visual-Studio-2015-Cheat-Sheet.pdf

  2. 通过Class获取标签,兼容的几种思路

    在js中通过document.getElementsByClassName()在低版本IE浏览器中不兼容.然后我写了几种方案,大家可以参考参考. html代码 <!DOCTYPE html> ...

  3. 深入理解PHP内核(三)概览-SAPI概述

    本文链接:http://www.orlion.ml/234/ 1.在PHP生命周期的各个阶段,一些与服务相关的操作都是通过SAPI接口实现.这些内置实现的物理位置在PHP源码的SAPI目录.这个目录存 ...

  4. java中自动装箱的问题

    package wrapper; public class WrapperDemo { public static void main(String[] args) { Integer a=new I ...

  5. UML类图学习

    在UML类图中,常见的有以下几种关系: 泛化(Generalization),  实现(Realization),关联(Association),聚合(Aggregation),组合(Composit ...

  6. (转)sql的join图解

    假设我们有两张表,Table A是左边的表,Table B是右边的表. 其各有四条记录,其中有两条记录是相同的,如下所示: 1 id name       id  name 2 -- ----     ...

  7. 安装android studio报错Failed to install Intel HAXM.

    在安装android studio的过程中,安装到android的模拟器加速器(intel HAXM)这一步时,报错: HAXM是用来管理硬件加速的,估计是用了这个东西模拟器就能告别Eclipse的龟 ...

  8. 响应式网页中,如何只用CSS实现div的高和宽保持固定比例

    引言: 如果div里是<img>,原生就支持. .item img {     float: left;     margin:5%;     width: 20%; } >> ...

  9. CSS好看的按钮

    好看的按钮 <style> .btn { BORDER-RIGHT: #7b9ebd 1px solid; PADDING-RIGHT: 2px; BORDER-TOP: #7b9ebd ...

  10. C# Socket系列一 简单的创建socket的监听

    socket的应用场景,在快速,稳定,保持长连接的数据传输代码.Http也是socket封装出来的,基于一次请求一次回复,然后断开的socket连接封装. 比如我们常见的游戏服务器,目前的很火的物联网 ...