C# 如何通过代码获取日志文件名?

C# 如何通过代码获取日志文件名?,c#,log4net,app-config,C#,Log4net,App Config,如何在代码中获取日志文件名?(因此我可以将其打印到控制台) 我的日志文件在app.config中定义如下: <appender name="RollingLogFileAppender" type="log4net.Appender.RollingFileAppender"> <file value="logfile" /> ... ... 你看着自己的眼睛。在存储库中,您可以查看其中的所有appender。如果appender类型为,请检查

如何在代码中获取日志文件名?(因此我可以将其打印到控制台)

我的日志文件在app.config中定义如下:

<appender name="RollingLogFileAppender"
   type="log4net.Appender.RollingFileAppender">
      <file value="logfile" />
    ...

...
你看着自己的眼睛。在存储库中,您可以查看其中的所有appender。如果appender类型为,请检查其属性,或者如果您预先输入,则可以通过检查appender


也就是说,在代码中这样做是非常糟糕的。如果在部署时更改了配置,并且预期的追加器不再存在,该怎么办

请参阅此文件的文件属性

Log是ILog的实例


((log4net.Repository.Hierarchy.DefaultLoggerFactory.LoggerImpl)Log.Logger).Appenders.OfType().FirstOrDefault().File

我可以检查空值。以某种方式阅读app.config怎么样?请参阅中关于如何阅读您自己的配置部分的示例。不过,我还是建议您重新启动它。为了方便起见,我想将日志文件打印到控制台。你有什么建议吗?我的观点是log4net允许任何appender。如果是一个文件附加器,则可以搜索LogManager并显示文件属性,如我的文章所示。但是如果有一个你不知道存在的appender呢,比如我公司提供的appender?任何人都可以将这样的和appender添加到你的application.config并删除你的RollingFileAppender,那么你打算打印什么呢?我认为有理由假设,如果有人做出这样的更改,就会进行测试,并且根据
RollingFileAppender
修复/删除损坏的代码。说任何人都可以添加和删除附加器是不正确的。所有的一切都是无理的恐惧,伊莫。