【发布时间】:2009-10-22 09:37:46
【问题描述】:
首先,为主观的标题道歉。这是一个直接的问题。
目前我正在开发一套工具:
- 一个 C# Windows 服务,主要用于 维护一个 Oracle 数据库。
- 一个 C# Windows 服务,(它将是 在多个节点站点上使用) 处理数据库的内容。
- 一个 ASP.NET Web 界面 便于管理整体 “系统”
目前 Windows 服务已开发为控制台应用程序(以简化调试/开发),我正在将这些转换为服务。在使用这些服务测试了几天之后,我发现我想增加日志记录的粒度。我发现我想念 Console.WriteLine() 并且我想为这种类型的输出提供一个备用日志源,比如平面文件。这让我想到,“我应该使用框架,还是已经够用了?”
我提到我正在开发的方面的原因是为了提供对我的情况的洞察力。创建了一个“核心”DLL,它在所有组件中通用,抽象了应用程序和数据库之间的交互层。正是在这个 DLL 中创建了一个类,该类将尝试“记录到数据库中的表”,否则在失败时“记录到本地事件日志”。就是这样,这就是日志的范围。
在上述工具中,有多个日志记录实例与:
Log.LogError("Code", e.Message + "\n" + e.StackTrace);
虽然很基本,但这种方法确实利用反射来识别错误的来源。
我的问题
查看我当前的日志记录解决方案,就其功能以及如何与我的所有解决方案集成而言,它似乎“足够”了。但是,我一直在研究日志框架(尤其是 log4net),它们的功能给我留下了深刻的印象。如果将来需要,添加另一种输出格式(例如 SMTP 服务器)的能力对我来说听起来很酷! :)
我想知道迁移到框架(如 log4net)的好处?我需要在多大程度上调整我的代码?我是否只是在看另一边更绿的草?最后,但可能最重要的是,我做对了吗?我是否应该将我的 Log 类的功能添加到“LogDebug”并完成它?我想做的最后一件事是彻底检修我的套件,只是为了一个“基本”功能,但如果还有其他好处(设计、依赖、良好实践等)我很感兴趣。
谢谢,
【问题讨论】:
-
您的问题标题中有错字。 ;)
-
谢谢!诵读困难再次发作。 :)
-
越早越好。我继承了一天失败的自定义日志记录代码,并停止了所有日志。设想。我已经切换到
log4net并且从未回头 - 它在各方面都更好。