如何在不使用 try catch 的情况下验证事件日志写入权限?我已阅读以下问题:Checking Event Log writing Permissions without writing an entry,但答案建议使用EventLogPermissionAttribute
. 据我所知,我不能使用它来验证权限,它只是Exception
在没有请求的权限时抛出一个。
我的代码现在看起来像这样:
public void WriteMessage(string message)
{
try {
var trace = new TraceSource("MySource");
trace.TraceEvent(TraceEventType.Information, 1000, message);
} catch() {
var log = LogManager.GetLogger<MyClass>();
log.Info(message);
}
}
但我想要这样的东西:
public void WriteMessage(string message)
{
if(EventLogPermission("MySource"))
{
var trace = new TraceSource("MySource");
trace.TraceEvent(TraceEventType.Information, 1000, message);
} else {
var log = LogManager.GetLogger<MyClass>();
log.Info(message);
}
}
当然,最后它并没有太大的区别,但是使用 try catch 进行逻辑只是感觉很脏。