当前位置:  开发笔记 > 编程语言 > 正文

登录C#时出错

如何解决《登录C#时出错》经验,为你挑选了7个好方法。

我正在从C++编码切换到C#.我需要用C#中类似的东西替换我的C++错误日志/报告宏系统.

在我的C++源代码中,我可以写

LOGERR("有些错误"); 或LOGERR("输入%s和%d出错",stringvar,intvar);

宏和支持库代码然后将(可能是varargs)格式化的消息与源文件,源代码行,用户名和时间一起传递到数据库中.相同的数据也被填充到数据结构中,以便稍后向用户报告.

有没有人有C#代码片段或指向执行此基本错误报告/日志记录的示例的指针?

编辑: 当我问这个问题时,我对.NET很陌生,并且不知道System.Diagnostics.Trace.System.Diagnostics.Trace是我当时需要的.从那以后,我在日志记录要求更大,更复杂的项目中使用了log4net.只需编辑500行XML配置文件,log4net即可完成您需要的所有内容:)



1> Chris S..:

很多log4net都支持这里,所以我相信这会被忽略,但我会添加自己的偏好:

System.Diagnostics.Trace

这包括监听您的Trace()方法的侦听器,然后写入日志文件/输出窗口/事件日志,包含的框架中的那些DefaultTraceListener,TextWriterTraceListener以及EventLogTraceListener.它允许您指定级别(警告,错误,信息)和类别.

MSDN上的跟踪类
写入Web应用程序中的事件日志
UdpTraceListener - 将log4net兼容的XML消息写入日志查看器,例如log2console


+1小额外添加,当且仅当您使用TRACE预处理器符号编译时,Trace才处于活动状态.
您可以覆盖`TextWriterTraceListener`中的`WriteLine()`方法,以在日志文件中实现自动时间戳功能.请参阅[此CodeProject文章](http://www.codeproject.com/KB/dotnet/customnettracelisteners.aspx),第6节.

2> Mitch Wheat..:

我强烈推荐查看log4Net.这篇文章涵盖了入门所需的大部分内容.



3> Mats Fredrik..:

另一个好的日志库是NLog,可以登录到很多不同的地方,比如文件,数据库,事件记录器等.



4> 小智..:

我使用The Object Guy的Logging Framework - 对大多数尝试它的人都这样做.这家伙有一些有趣的评论.



5> Eric Schoono..:

Enterprise Library是log4net的可靠替代品,它还提供了许多其他功能(缓存,异常处理,验证等).我几乎在我构建的每个项目中使用它.

强烈推荐.



6> Ben Hoffstei..:

即使我个人讨厌它,log4net似乎也是C#日志记录的事实标准.样品用法:

log4net.ILog log = log4net.LogManager.GetLogger(typeof(Program));
log.Error(“Some error”);
log.ErrorFormat("Error with inputs {0} and {1}", stringvar, intvar);


它完成了工作,但我讨厌文档,并且厌倦了花了很多时间修改配置文件并且基本上是盲目的,直到我可以按照我想要的方式获得相对简单的工作.
我已经使用了log4net并且欣赏它是一个强大的工具(NHibernate和其他人使用它).但我很好奇为什么人们不喜欢使用.NET 2.0内置跟踪?使用不同类型的监听器和一些工具,它似乎比log4net(这是一个java端口)要麻烦得多.

7> 小智..:

正如我在另一个帖子中所说,我们多年来一直在多个生产应用程序中使用The Object Guy的Logging Framework.它非常易于使用和扩展.

推荐阅读
大大炮
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有