最近在弄使用Log4net记录日志。
将配置文件封装到的DLL中。
封装步骤:
1.将配置文件添加到类库中。
2.在配置文件上右键,选择属性。
3.
此时生成类库。DLL中就存在该配置文件啦。如图:
在类库中使用该配置文件:
//获取配置文件全称 string str = System.Reflection.Assembly.GetExecutingAssembly().GetName().Name + ".Log4Net.config"; //读取配置文件 System.IO.Stream stream = System.Reflection.Assembly.GetExecutingAssembly().GetManifestResourceStream(str); log4net.Config.XmlConfigurator.Configure(stream);
附上使用Log4net全部代码
1.配置文件:Log4net.config
2.日志帮助类:LogHelper
public class LogHelper { public static LogHelper logHelper=new LogHelper(); private readonly static ILog _errorLog = LogManager.GetLogger("ErrorLog"); private readonly static ILog _infoLog = LogManager.GetLogger("InfoLog"); private readonly static ILog _warnLog = LogManager.GetLogger("WarnLog"); private readonly static ILog _fatalLog = LogManager.GetLogger("FatalLog"); private LogHelper() { //获取配置文件全称 string str = System.Reflection.Assembly.GetExecutingAssembly().GetName().Name + ".Log4Net.config"; //读取配置文件 System.IO.Stream stream = System.Reflection.Assembly.GetExecutingAssembly().GetManifestResourceStream(str); log4net.Config.XmlConfigurator.Configure(stream); } ////// 普通日志信息 /// /// 日志内容 /// 位置跟踪 public void InfoLog(string msg, string stackTrace) { Log(LogType.InfoLog, msg, stackTrace); } ////// 警告级日志信息 /// /// 日志内容 /// 位置跟踪 public void WarnLog(string msg, string stackTrace) { Log(LogType.WarnLog, msg, stackTrace); } ////// Error级日志信息 /// /// 日志内容 /// 位置跟踪 public void ErrorLog(string msg, string stackTrace) { Log(LogType.ErrorLog, msg, stackTrace); } ////// 致命级日志信息 /// /// 日志内容 /// 位置跟踪 public void FatalLog(string msg, string stackTrace) { Log(LogType.FatalLog, msg, stackTrace); } ////// 记录日志通用方法 /// /// 所添加日志类型,LogType枚举 /// 所添加的日志信息 public void Log(LogType ltype, params string[] logs) { string msg = string.Join("\n", logs); switch (ltype) { case LogType.InfoLog: if (_infoLog.IsInfoEnabled) _infoLog.Fatal(msg); break; case LogType.WarnLog: if (_warnLog.IsWarnEnabled) _warnLog.Fatal(msg); break; case LogType.ErrorLog: if (_errorLog.IsErrorEnabled) _errorLog.Fatal(msg); break; case LogType.FatalLog: if (_fatalLog.IsFatalEnabled) _fatalLog.Fatal(msg); break; } } } public enum LogType { ////// 普通日志 /// InfoLog = 1, ////// 警告级别日志 /// WarnLog = 2, ////// 错误级别日志 /// ErrorLog = 4, ////// 致命级别日志 /// FatalLog = 8 }