gpt4 book ai didi

.net - 跟踪与日志记录以及 log4net 如何适应?

转载 作者:行者123 更新时间:2023-12-03 02:11:14 26 4
gpt4 key购买 nike

我想知道日志记录和跟踪之间有什么区别。

本质上的区别是跟踪是更详细的日志,为开发人员提供了在运行时调试应用程序的工具?

我一直在尝试使用 log4net 并进行日志记录。现在我想知道我是否也应该进行跟踪,以及我是否可以/应该使用 log4net 来实现此目的。我应该使用 log4net 进行跟踪吗?log4net 记录器是否有某种跟踪级别?我应该使用不同的日志级别进行调试和跟踪,还是可以使用相同的日志级别?您能否举一个简单的示例来说明如何使用简单的方法进行日志记录和跟踪?

编辑:尽管下面有一些有用的答案,但我仍然不确定应该如何进行跟踪和日志记录。

我的业务层中有以下方法,我想向其中添加日志记录/跟踪。我想知道如何有效地做到这一点。以下方法在日志记录/跟踪方面是否可以接受?日志消息的类型应该是“信息”而不是“调试”吗?我正在记录的调试消息是否被视为跟踪?你会如何改变它?


IEnumerable<Car> GetCars()
{
try
{
logger.Debug("Getting cars");
IEnumerable<Car> cars = CarAccessor.GetCars().ConvertAll(DataAccessToBusinessConverter);
logger.Debug("Got total of " + cars.Count + " cars");
} catch (Exception e) {
logger.Error("Error when getting cars", e);
throw new Exception("Unexpected error when getting cars");
}
}

最佳答案

日志记录是记录信息的通用术语 - 跟踪是用于调试的日志记录的特定形式。

在 .NET 中,System.Diagnostics.Trace 和 System.Diagnostics.Debug 对象允许简单地记录到许多“事件监听器”,您可以在 app.config 中配置这些“事件监听器”。您还可以使用 TraceSwitches 进行配置和过滤(例如,在错误和信息级别之间)。

private void TestMethod(string x)
{
if(x.Length> 10)
{
Trace.Write("String was " + x.Length);
throw new ArgumentException("String too long");
}
}

在 ASP.NET 中,有一个特殊版本的 Trace (System.Web.TraceContext) 会写入 ASP 页面的底部或 Trace.axd。在 ASP.NET 2+ 中,还有一个更完整的日志记录框架,称为运行状况监控。

Log4Net 是一种比内置跟踪甚至 ASP 运行状况监控更丰富、更灵活的跟踪或日志记录方式。与 Diagnostics.Trace 一样,您可以在 config 中配置事件监听器(“appenders”)。对于简单的跟踪,使用起来很简单,就像内置的 Trace 一样。决定使用 Log4Net 取决于您是否有更复杂的需求。

private void TestMethod(string x)
{
Log.Info("String length is " + x.Length);
if(x.Length> 10)
{
Log.Error("String was " + x.Length);
throw new ArgumentException("String too long");
}
}

关于.net - 跟踪与日志记录以及 log4net 如何适应?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/172372/

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