gpt4 book ai didi

logging - Logger 和 LogWriter 的区别

转载 作者:行者123 更新时间:2023-12-04 17:23:57 25 4
gpt4 key购买 nike

我正在使用 Microsoft Enterprise Library 5.0 Logging block ,我想知道 LogWriter 和 Logger 类之间的区别。我有几个自定义跟踪监听器 我已经构建用于我的日志记录,我想知道使用 Logger 与 LogWriter 是否会产生任何影响。

来自 MSDN http://msdn.microsoft.com/en-us/library/microsoft.practices.enterpriselibrary.logging.logwriter.aspx

To write log messages to the default configuration, use the Logger facade. Only create an instance of a LogWriter if you need to write log messages using a custom configuration.



示例代码#1:
namespace ExampleOne
{
using System;
using System.Diagnostics;
using Microsoft.Practices.EnterpriseLibrary.Common.Configuration;
using Microsoft.Practices.EnterpriseLibrary.Logging;

public class Program
{
private static LogWriter logger = EnterpriseLibraryContainer.Current.GetInstance<LogWriter>();

public static void Main(string[] args)
{
try
{
throw new Exception("My test exception message");
}
catch (Exception ex)
{
LogEntry logEntry = new LogEntry();
logEntry.Message = "Error: " + ex.ToString();
logEntry.Categories.Add("General");
logEntry.Severity = TraceEventType.Error;
logger.Write(logEntry);
}
}
}
}

示例代码#2:
namespace ExampleTwo    
{
using System;
using System.Diagnostics;
using Microsoft.Practices.EnterpriseLibrary.Logging;

public class Program
{
public static void Main(string[] args)
{
try
{
throw new Exception("My test exception message");
}
catch (Exception ex)
{
LogEntry logEntry = new LogEntry();
logEntry.Message = "Error: " + ex.ToString();
logEntry.Categories.Add("General");
logEntry.Severity = TraceEventType.Error;
Logger.Write(logEntry);
}
}
}
}

最佳答案

获取当前实例的版本是成为更好版本的一部分,因为它更容易使用依赖注入(inject),因此更容易进行单元测试,以防记录器写入数据库或发送电子邮件或以其他方式与一些大型外部组件交互具有与被测代码无关的行为。

另一方面,如果目标是鼓励您的团队登录,那么以最少的设置进行日志记录是更好的选择,但配置将是配置文件驱动的,您需要一个单独的配置文件用于测试和生产。

此外,在现实生活中的组织中,您不能总是期望操作人员是 web 配置(或者在这种情况下是 Ent Lib 配置) super 忍者,有时您需要提供打开日志记录和关闭日志记录或以其他方式更改行为(例如将错误发送到不同的邮件列表/用户列表),这将需要动态配置。当通过 UI 更改日志记录行为只是一项普通事务时,我曾在组织中工作,但更改如此之多,以至于 web.config 的一个角色采取了上帝的行为和变更控制委员会。

关于logging - Logger 和 LogWriter 的区别,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13991273/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com