之前的讲过两篇关于日志组件的文章,分别是《单例模式,可以说,最常用的模式都用到了,而它们在这个项目里都起到了什么作用,什么时候用到它们呢,这些答案相信在看完我的文章之后,您会有一个明确的答案的。
一 面向接口编程与多态
面向接口编程,是实现软件解耦的灵魂,也是实现多态的方法之一,日志项目有统一的接口规范
/// <summary> /// 日志功能接口规范 /// </summary> public interface ILogger { /// <summary> /// 记录代码运行时间 /// </summary> /// <param name="message">消息</param> /// <param name="action">所测试的代码块</param> /// <param name="fileName">日志文件名</param> void Logger_Timer(string message, Action action, string fileName); /// <summary> /// 记录代码运行时间,日志文件名以codeTime开头的时间戳 /// </summary> /// <param name="message">消息</param> /// <param name="action">所测试的代码块</param> void Logger_Timer(string message, Action action); /// <summary> /// 记录代码运行异常 /// </summary> /// <param name="message">消息</param> /// <param name="action">要添加try...catch的代码块</param> /// <param name="fileName">日志文件名</param> void Logger_Exception(string message, Action action, string fileName); /// <summary> /// 记录代码运行异常,日志文件名以Exception开头的时间戳 /// </summary> /// <param name="message">消息</param> /// <param name="action">要添加try...catch的代码块</param> void Logger_Exception(string message, Action action); /// <summary> /// 将message记录到日志文件 /// </summary> /// <param name="message"></param> void Logger_Info(string message); /// <summary> /// 将message记录到名为fileName的日志文件 /// </summary> /// <param name="message"></param> /// <param name="fileName"></param> void Logger_Info(string message, string fileName); }