Mik*_*ike 3 c# enterprise-library nlog
使用下面使用NLog的代码段如何使用Enterprise Library 5.0 Logging完成?
private Logger _logger;
public NLogger() {
_logger = LogManager.GetCurrentClassLogger();
}
public void Info(string message) {
_logger.Info(message);
}
public void Warn(string message) {
_logger.Warn(message);
}
Run Code Online (Sandbox Code Playgroud)
你正在寻找这样的东西:
private LogWriter _logger;
public void EntLibLogger()
{
_logger = EnterpriseLibraryContainer.Current.GetInstance<LogWriter>(); ;
}
public void Info(string message)
{
LogEntry log = new LogEntry();
log.Message = message;
log.Categories.Add("Information");
log.Priority = Priority.Normal;
log.Severity = TraceEventType.Information;
_logger.Write(log);
}
public void Warn(string message)
{
LogEntry log = new LogEntry();
log.Message = message;
log.Categories.Add("Warning");
log.Priority = Priority.High;
log.Severity = TraceEventType.Warning;
_logger.Write(log);
}
public void Error(string message, int EventID, Dictionary<String,String> dictMessage)
{
LogEntry log = new LogEntry();
log.Message = message;
log.Categories.Add("Error");
log.Priority = Priority.Highest;
log.Severity = TraceEventType.Error;
log.EventId = EventID;
_logger.Write(log, dictMessage);
}
Run Code Online (Sandbox Code Playgroud)
在app.config中设置配置设置是一个繁琐的位.
我的建议是EventID每次调用使全局唯一(系统文档总是包含带有这些数字的电子表格以及项目/文件/行#出现在那里).这样,如果应用程序正在生产中,您很可能会从日志中获得1行,并且您必须能够识别此日志记录调用来自源的位置.我通常会为局部变量及其值添加一个字典,以便进行调试.一个地方想要记录先前的值,因此审计事件总是包含字典.
默认情况下,它在数据库中记录的方式,Entlib将"category"存储为类别和日志表中的字符串.严重性,优先级和EventID存储为整数.FormattedMessage是在formatters部分中定义的大块内容,还包括字典的内容(键值对) - 如果使用的话.
类别是一个集合,因为有时您可能希望记录数据库中的所有内容,但某些消息也会写入事件日志和/或向开发人员发送文本消息以使他们的范围垂直向上工作.我工作过的一个地方使用了铱星寻呼机让指定的人知道服务器出现问题,因为他们喜欢登山,他们经常在没有小区覆盖的地方.
| 归档时间: |
|
| 查看次数: |
716 次 |
| 最近记录: |