这是我对log4net的配置:

<log4net>
    <appender name="MyLogger" type="log4net.Appender.RollingFileAppender">
        <file value="MyLog.log" />
        <appendToFile value="true" /> 
        <rollingStyle value="Size"/>
        <maxSizeRollBackups value="20"/>
        <maximumFileSize value="1000KB"/>
        <layout type="log4net.Layout.PatternLayout">
            <param name="ConversionPattern" value="%d{yyyy-MM-dd HH:mm:ss},%p,%m%n" />
        </layout>
    </appender>
    <root>
        <level value="DEBUG" />
        <appender-ref ref="MyLogger" />
    </root>
</log4net>

在C#中,我试图获取日志(log)文件的名称(即MyLog.log).我在谷歌上搜索并try 了很多东西,但都失败了.有什么帮助吗?

谢谢!

推荐答案

在你的情况下,解决这个问题很容易;只需使用以下代码:

var rootAppender = ((Hierarchy)LogManager.GetRepository())
                                         .Root.Appenders.OfType<FileAppender>()
                                         .FirstOrDefault();

string filename = rootAppender != null ? rootAppender.File : string.Empty;

.net相关问答推荐

尽管有`disable`注释,但未 suppress Pylint语法错误

如何在AutoMapper中添加自定义方法到项目中?

为什么 PropertyInfo.SetValue 在此示例中不起作用以及如何使其起作用?

防止在 .NET 上构建路径中的反斜杠以进行跨平台部署

在 C# 中,如何使用泛型的基类将泛型接口的所有实例注入到单个构造函数中?

如何在 MSBuild 脚本中获取当前目录?

HttpClient 请求抛出 IOException

我什么时候应该在 C# 中使用使用块?

是否有用于 Windows / C# 开发的可嵌入 Webkit 组件?

如何授予所有用户对我的应用程序创建的文件的完全权限?

如何允许程序集(单元测试)访问另一个程序集的内部属性?

如何使我的托管 NuGet 包支持 C++/CLI 项目?

在生产环境中部署调试符号(pdb 文件)有什么风险?

如何获得 Bin 路径?

使 HashSet 不区分大小写

DLL 中有什么以及它是如何工作的?

读取 XML(从字符串)并获取一些字段 - 读取 XML 时出现问题

如何将 .NET 应用程序编译为本机代码?

System.ServiceModel 在 .NET Core 项目中找不到

枚举和匹配属性的 C# 命名约定