FileDetector 文件监控 日志监控

FileDetector最初是用来监测日志文件变化的,有变化就进行邮件通知。此软件的设计主要体现在配置文件上了。所以,从配置看软件内部逻辑设计:
app.json

{

    “DefaultDetectorCinfig”: “defaultDetector.json”,

    “RecentOpTime”: “2016-09-22T18:27:50.0995478+08:00”,

    “IsDailyResetFileStamp”: true

}
defaultDetector.json

{

    “FileTargetPattenList”: [

        “Log/*.txt”,”Log2/*.txt”

    ],

    “FileStampList”: {

        “Log/1.txt”: “C4CA4238A0B923820DCC509A6F75849B”,

        “Log/2.txt”: “C81E728D9D4C2F636F067F89CC14862C”,

        “Log\\2016-09-22-001.txt”: “47BCE5C74F589F4867DBD57E9CA9F808”,

        “Log\\2016-09-22.txt”: “7FC81F243BF93E98FA624038EAE58322”

    }

}
分步讲解:
由于此软件为控制台模式的,没有操作界面,用cmd调用,也利用在服务器上进行运行。
设计这个app.json的大概思路:
DefaultDetectorCinfig:默认监测节点主要是为了方便运行调试
RecentOpTime:记录最近检测时间,由于日志文件每天滚动,因此隔天的文件戳要清空(FileStampList)
IsDailyResetFileStamp:这个是隔天清空的开关,对于非日志文件,不用清空,这个开关就关掉。
设计defaultDetector.json的思路:
FileTargetPattenList:需要检测的目标文件,这里采用的是Pattern,可以匹配多个文件,并且支持多处文件夹的文件。
FileStampList:不为空的文件戳都存放在此,监测变化的时候比较文件戳即可。这里采用了md5抽取文件戳。
最佳使用实践:
针对每天都会生成yyyy-MM-dd的文件,配置一个FileDetector实例,传入配置参数,比如:FileDetector.exe logfileDetector.json
针对不变化的文件,配置一个FileDetector实例,传入配置参数,形如:FileDetector.exe staticFileDetector.json
取名记
每次写个小工具,都要花点时间想名字,本来想用FileWatcher,但是还是选了一个FileDetector。Watcher感觉像手表,嘻嘻,天天说去W,也比较污。
扩展使用
写这个主要是用来做日志监控的,但是本身用来做网站文件监测也是不错的。自己文件用这个监测一下,也可以知道有没有被“黑”。
话说为了提供跨境商品服务,也是豁出去了。这些监测都是及时监测跨境业务流程中的服务状态。
有需要跨境商品的亲,记得联系哟。 QQ:1132958967

Leave a Reply