适用于 Applicative 和 ASP.NET 的简单日志记录器
限制日志记录的大小
引言
我编写了一个 Pocket PC 程序,需要将错误记录到文件中,但我不希望文件无限制地增长,直到 SD RAM 空间耗尽。
背景
我知道……有很多代码可以用来将错误记录到文件、XML、注册表等。
如果你在服务器上编写每天、每小时等运行的服务,你会每次都记录到一个不断增长的文件中吗?你不是服务器的管理员,无法进行清理,但如果出现问题,你需要查看日志文件才能知道发生了什么。如果你编写一个 Pocket PC 应用程序,需要记录正在发生的事情,资源有限,不可能无限增长。是的,可以使用注册表来记录内容,但它会随着时间的推移不断增大。
Using the Code
在类的开头,你将看到以下内容
#region
Member(s) and Constants
// File Size max line 1000
const long MAXFILE_LINE = 1000;
每个日志都是一行文本条目,常量 MAXFILE_LINE
是日志重新开始到第 1 行之前的最大行数……循环日志。根据你的需要增加或减少。
日志文件会是什么样子?
2009/09/21 10:37:14 LDapSynchro--> Starting Process
2009/09/21 10:37:25 LDapSynchro--> Finished processing
2009/09/21 10:42:56 LDapSynchro--> Starting Process
2009/09/21 10:43:09 LDapSynchro--> Finished processing
2009-10-14 13:43:32 LDapSynchro--> Starting Process
2009-10-14 13:43:46 LDapSynchro--> Finished processing
2009-10-14 13:44:01 LDapSynchro--> Starting Process
2009-10-14 13:44:14 LDapSynchro--> Finished processing
文件是简单的文本(开头的奇怪字符是一个二进制计数器)。在这个例子中,我没有用户,而只是一个名为 LDapSynchro
的服务。简单而有效。
如何使用?
- 实例化类
m_MyLogger = new clsFileLogger();
- 告诉类文件名和位置
strFileLogger = Directory.GetCurrentDirectory() + \\MyLog.log;
m_MyLogger.Filename = strFileLogger;
- 如果你需要,可以提供一个默认用户名。
- 然后使用函数
LogError
,它有 3 个重载。 - 最后,使用
Close()
函数,它也会释放分配的内存(在 Pocket PC 上很重要)。
关注点
有很多复杂的类用于日志记录,但它们体积庞大,并且认为日志记录的空间是无限的,但在现实生活中并非如此。而且不要忘记这是一个循环日志记录器,这意味着很多。我可以要求客户将这个简单的 LogFile
发给我,以便我查看并了解正在发生的事情。它适用于 Pocket PC、Mobile、Applicative 和 ASP.NET。
历史
- 这是版本 1.00。到目前为止,我已经将其用于 3 个不同的项目,并且到目前为止一切都很好。