相关疑难解决方法(0)

我应该何时使用Tracing vs Logger.NET,Enterprise Library,log4net或Ukadc.Diagnostics?

如何在标准跟踪,Logger.NET,企业库,log4net或Ukadc.Diagnostics之间进行选择?

是否存在一个比另一个更合适的情况?那会是什么?(ASP.NET,控制台应用,Azure云,SOHO,企业...)

有什么好处或缺点?

我是否错过了其他主要的日志记录框架?

.net log4net enterprise-library system.diagnostics nlog

40
推荐指数
2
解决办法
2万
查看次数

使用Enterprise Library 4.1从多个进程记录到同一文件

我有几个并发运行的进程,我想要登录到同一个文件.

我们一直在使用Enterprise Library 4.1 Logging Application Block(带有a RollingFlatFileTraceListener),它工作正常,除了它在两个进程同时尝试写入日志文件时为日志文件名添加GUID这一事实(a System.Diagnostics.TextWriterTraceListener我相信的怪癖).

我尝试了各种各样的事情,包括Logger.Writer.Dispose()写入日志文件后调用,但每次写入日志条目时都不适合进行阻塞调用.

EntLib论坛建议将MSMQ与分销商服务一起使用,但这不是一个选项,因为我的公司不允许使用MSMQ.

有没有其他方法可以快速轻松地从多个线程/进程登录到同一个文件?

c# logging multithreading enterprise-library

8
推荐指数
1
解决办法
8699
查看次数

设计应用程序范围的日志系统有哪些指导原则?

我正在学习分层架构,我想知道如何在这样的设计中添加日志系统.

现在让我们说我们有三层:

  1. 表达层
  2. 业务层
  3. 数据访问层

并假设只有更高级别的层知道下面一层的层.例如,表示层知道业务层,但不是相反.

你应该在哪里实现一般记录器类?

  1. 如果我在不同的项目中实现它,则意味着所有层都依赖于公共程序集,这可能是也可能不是.虽然这可以通过依赖注入来克服.
  2. 如果我在最高级别(在我们的例子中是表示层)中实现它,它将违反单一责任原则.

实施日志记录机制的好地方是什么?

在实施之后,使用这样一个系统的方法是什么?

  1. 理想情况下,它应该能够捕获未捕获的异常并在某处保存异常描述.
  2. 你应该在哪里捕获例外?它们应该被捕获在最高层(表示层)吗?或者他们应该被别人抓到?
  3. 用于将记录器传递给类的方法是什么?将方法/构造函数重载添加到接受类似接口的项目中的所有内容是否有意义ILogger

正如您所看到的,我对这个主题非常困惑,在我目前的工作中,没有人对企业应用程序设计/分层设计有任何了解,即使他们正在设计企业应用程序.所以任何帮助向我展示正确的方向将不胜感激.

c# logging enterprise design-patterns

2
推荐指数
1
解决办法
1637
查看次数