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

C#/.Net 动态编译 UnitedAPI提速器

关键词:CSharpCodeProviderICodeCompilerCompilerParametersCompilerResultsAssembly

前言:

—————————–

1.为UnitedAPI进一步提升速度,一个要从纯SQL转存储过程,这个好实现。另一个就要利用动态编译特性,将原本动态的东东静态化,即用享受动态的灵活性,也不失静态的效率。

2.在一段逻辑流中增加一段新的控制逻辑,就没有必要打开vs了,直接web中增加,然后实时编译。这个可以为UnitedAPI提供更丰富而实时的控制能力。

3.可以用开vs了,直接弄个在线编程工具,在线编程。断点调试肿么破?感觉也可以弄个动态编译自动扫描每一行代码的情况,然后模拟出断点~~

 

转载内容:

——————————————————————

一、CSharpCodeProvider
    提供对C#代码生成器和代码编译器的实例的访问。如果要动态生成VB代码,可以使用VBCodeProvider
CreateCompiler():获取编译器的实例。
二、ICodeCompiler
    定义用于调用源代码编译的接口或使用指定编译器的CodeDOM树。每种编译方法都接受指示编译器的CompilerParameters对象,并返回指示编译结果的CompilerResults对象。
CompilerAssemblyFromSource(CompilerParameters option, string source):使用指定的编译器,从包含源代码的字符串设置编译程序集。
三、CompilerParameters
表示用于调用编译器的参数。
ReferencedAssemblies:获取当前项目所引用的程序集。Add方法为程序集添加引用。
GenerateExecutable:获取或设置一个值,该值指示是否生成可执行文件。若此属性为false,则生成DLL,默认是false。
GenerateInMemory:获取或设置一个值,该值指示是否在内存中生成输出。
四、CompilerResults
    表示从编译器返回的编译结果。
CompiledAssembly:获取或设置以编译的程序集,Assembly类型。
五、Assembly
    就是程序集了(不知道如何描述了)。

转载自:http://www.cnblogs.com/jailu/archive/2007/07/22/827058.html