相关疑难解决方法(0)

C#日志记录.我该怎么用?

我正在寻找一种新的统一日志记录解决方案,用于我们的新系列产品,我想看看Stack Overflow上的一些人的想法.我们需要记录各种应用程序:ASP .net,Windows服务,Web服务,wpf应用程序等.我们只是一个Windows商店.

我们对日志记录解决方案的一些要求包括:

1)日志文件管理

- Ability to split files up over a certain size
- Ability to auto archive/delete after certain period of time
Run Code Online (Sandbox Code Playgroud)

2)能够发送关于记录的某些类型的消息的电子邮件(例如错误)

3)能够将消息写入Windows事件日志

- We need to be able to specify where it's being written in the event log. 
  It would also be nice if it would automatically create the event log source if it does exist.
Run Code Online (Sandbox Code Playgroud)

我已经开始关注nLog,windows trace和log4net.我不仅限于这3只,只是在搜索时出现了很多.

c# windows logging

28
推荐指数
3
解决办法
6504
查看次数

Application.ThreadException与AppDomain.UnhandledException

首先是一些背景:我有一个多线程WinForms应用程序正在与本机dll互操作.这个应用程序有时会因未处理的异常而崩溃,我们正试图调查它为什么会发生.为了方便它,我正在创建一个全局异常处理程序,我计划从中生成进程转储文件.

现在提出疑问:截至目前,这个应用程序有处理程序,Application.ThreadException但它仍然与未处理的异常崩溃.我正在考虑添加一个处理程序,AppDomain.UnhandledException虽然我不确定它是否会有所帮助.在这种情况下是否存在任何可能未被处理的未处理异常Application.ThreadException

c# exception-handling crash-dumps winforms

12
推荐指数
2
解决办法
5903
查看次数

建议设计:应用程序中几乎每个对象都有loggger

我正在写一个应用程序.我使用NLog进行日志记录.在这个应用程序中几乎每个对象都可以写入日志.我为此定义了受保护的成员:

protected Logger logger;

protected virtual Logger Logger
{
     get { return logger ?? (logger = LogManager.GetLogger(this.GetType().ToString())); }
}
Run Code Online (Sandbox Code Playgroud)

在这种情况下,我需要为应用程序中的每个基类复制/粘贴此代码.或者我看到其他选项:使用logger定义特定于应用程序的根对象并将其子类化.但在语义上这听起来是错误的,因为对我来说这不是真正的"是 - "的情况.

还有更好的选择吗?

c# logging design-patterns nlog

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