Microsoft.Extensions.Logging.ILoggingBuilder的AddEventLog在Linux下能否正常运行?是否会抛异常?
Linux下调用AddEventLog的行为说明
在Linux操作系统下调用Microsoft.Extensions.Logging.ILoggingBuilder.AddEventLog()不会引发异常,但该日志提供程序不会实际生效,具体细节如下:
AddEventLog扩展方法内部会自动检测当前运行环境,仅在Windows系统中才会注册Windows事件日志的日志提供程序。- 在Linux等非Windows环境中,调用该方法后,日志系统不会添加对应的事件日志输出目标,程序不会崩溃,其他已配置的日志提供程序(如控制台、文件日志等)仍能正常工作。
如果需要做跨平台适配,建议通过运行时判断或条件编译来控制该方法的调用,示例代码:
// 运行时判断方式 if (OperatingSystem.IsWindows()) { builder.Logging.AddEventLog(); } // 条件编译方式(需在项目中定义WINDOWS编译符号) #if WINDOWS builder.Logging.AddEventLog(); #endif
内容的提问来源于stack exchange,提问作者NCC-2909-M
相关产品推荐
相关产品推荐

