logging - 企业库不记录

标签 logging enterprise-library

我正在使用 Ent Lib 5 记录到事件日志。当我在 Windows 7 计算机上运行该应用程序时,一切正常。但是当我将它部署在 WindowsServer 2008 上时,它就停止了日志记录。它不会向事件日志写入任何内容。两台机器上都安装了 Ent Lib 5。

那你觉得怎么样?可能是什么问题?

最佳答案

这是登录 Windows 事件日志时的常见情况。这可能是由于事件源未在您的 Windows Server 2008 上注册。当您在开发计算机上运行它时,您(像大多数开发人员一样)可能具有管理员权限,并且 .NET 框架第一次会自动创建事件源你使用它们。任何没有管理员权限的应用程序都无法创建事件源,因此日志记录失败。应用程序继续运行,因为日志记录 block 的理念是不分散注意力,但不会记录任何内容。

部署应用程序时,您应该包含一个安装程序类来创建事件源。对于开发,一个快速的解决方案是使用 Windows PowerShell。运行提升的 PowerShell 进程,并使用以下命令:

[System.Diagnostics.EventLog]::CreateEventSource(sourceName, logName)

为给定日志创建事件源。

或者,在 EntLib 程序集上运行 InstallUtil。EntLib 附带的 InstallServices.bat 可以为您完成此操作。

查看更多内容Codeplex discussion .

关于logging - 企业库不记录,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5015096/

相关文章:

java - 比较 log4j 和 Logger

logging - 将 logrotate 与 logback 一起使用

Mono 与 Enterprise Library 4.1 的兼容性

c# - Unity 记录静态方法 AOP 风格或无接口(interface)

node.js - 在 heroku 中记录多行消息

java - SLF4J 日志级别作为参数

iphone - 客户端-服务器保持连接,每次iPhone锁定时我是否需要重新连接和重新登录?

.net - 使用 Ent-Lib 拨号跟踪的意外后果,没有错误记录

c# - 异常。EntLib 日志中缺少数据信息

c# - 使用 ETW 和语义日志记录应用程序 block 的文件锁定