c# - Windows 8.1 应用程序中的事件日志记录

标签 c# events logging win-universal-app windows-error-reporting

我想在我的 Windows 8.1 应用程序中实现日志记录框架,并且也是 Windows 8.1 的新手 当文件达到一定大小时,它将具有追加和滚动的属性。

在 Windows 8.1 中,我发现了两个选项,但也发现很少关于使用哪个选项以及何时使用的文档和信息。

Microsoft 建议使用本构建视频中提到的 FileLoggingSession。 http://channel9.msdn.com/Events/Build/2013/3-136

我有几个关于 FileLoggingSession 的问题

(a) 我已经完成了一个 POC,其中日志仅在调用 closeAndSaveToFileAsync() 时写入磁盘,但这应该是关闭文件的终止/暂停场景调用。即使没有错误或应用程序终止,我也希望有日志。日志何时实际写入磁盘? 我需要更多类似 Logging Session 的 saveFileAsync()

(b) 提到当达到最大文件大小时。内存中的内容将刷新到磁盘并调用 LogFileGeneerated 事件。我无法弄清楚文件的最大大小是多少。可以以任何方式配置吗?

我发现的第二个选项是使用 Metro Log https://github.com/mbrit/MetroLog 。虽然还没有在我的应用程序中尝试过。但似乎文档和社区支持非常少。

如果有人可以分享他/她登录 Windows 8.1 应用程序的经验并回答/评论我的上述问题/理解,我将不胜感激。

干杯, 索拉夫

最佳答案

只是为了回答我的决定。

我决定使用 Microsoft 提供的 FileLoggingSession API。

优点:

  • 不要依赖任何其他库/API。

  • 微软推荐

缺点:

  • 无法配置滚动的文件大小。

  • 每次将日志写入磁盘后都会创建一个新文件。所以 文件数量增加。

干杯,

索拉夫

关于c# - Windows 8.1 应用程序中的事件日志记录,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28328896/

相关文章:

java - 如何解耦日志实现和API?

javascript - 热衷于直接使用 ViewState 或其他方法来更新回发数据来清除隐藏字段?

c# - 具有通用接口(interface)的通用方法

c# - 使用 .NET 代码从用户组访问 Program Files 文件夹

c++ - MFC CFormView OnKeyDown 事件未触发

tomcat - 忽略 Grails 日志记录配置

c# - 在 DataGridView 中插入空行

python - 所有 Tkinter 事件的主列表?

javascript - Rx.Observable.fromEvent(document, 'click') 对比。 document.addEventListener ('click',回调)

node.js - 如何从 morgan logger 中删除日志文件中生成的空行?