如何使用 log4net 在 AppData 文件夹中创建文件

Posted

技术标签:

【中文标题】如何使用 log4net 在 AppData 文件夹中创建文件【英文标题】:How to create a file in the AppData folder using log4net 【发布时间】:2014-07-30 22:23:43 【问题描述】:

如何在 appData 文件夹中创建日志文件。路径是 C:\Users\MYNAME\AppData\Roaming\Project\My Project\Application。一旦我的项目开始,项目文件夹就会在此路径上创建,该路径是硬编码的。如何使用 log4net 在此文件夹中添加我的日志文件? 我已经在配置文件中进行了更改

<?xml version="1.0"?>
<configuration>
<configSections>
    <section name="log4net" type="log4net.Config.Log4NetConfigurationSectionHandler, log4net"/>
</configSections>
<log4net>
    <appender name="Console" type="log4net.Appender.ConsoleAppender">
        <layout type="log4net.Layout.PatternLayout">
            <!-- Pattern to output the caller's file name and line    number -->
            <conversionPattern value="%5level [%thread] (%file:%line) - %message%newline" />
        </layout>
    </appender>
    <appender name="RollingFile" type="log4net.Appender.RollingFileAppender">

        <file value="$APPDATA\\Roaming\\Project\\My Project\\Application\\Log.txt"/>
        <appendToFile value="true" />
        <maximumFileSize value="100KB" />
        <maxSizeRollBackups value="10" />
        <layout type="log4net.Layout.PatternLayout">            
            <conversionPattern value="%level %thread %logger - %message%newline" />
        </layout>
    </appender>
    <root>
        <level value="ALL" />
        <appender-ref ref="Console" />
        <appender-ref ref="RollingFile" />
    </root>
</log4net>
<startup>
    <supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.0"/>
</startup>
<system.serviceModel>
    <bindings />
    <client />
</system.serviceModel>
 </configuration>

这不会在此文件夹中创建任何文件。并且所有权限都被授予管理员权限。

【问题讨论】:

【参考方案1】:

看来您的做法是正确的,但在某些情况下,变量的大小写似乎有所不同:An other question on the subject

你可以试试:$AppData 有效

【讨论】:

对不起,我可以创建它。它应该是 。 $AppData 自动引用漫游。有没有办法在卸载应用程序时删除这些文件? @roopinin 仅当您有自定义卸载程序时,因为 Windows Installer 不会跟踪 log4net 创建的文件,因为它们不是在安装时创建的。 @stuartd - 我将创建一个自定义安装程序,谢谢。 如果您想要 AppData\Local 而不是漫游,请改用 $(LocalAppData) @benjymous 它适用于$LocalAppData(用大括号替换圆括号)。如果有人需要澄清:en.wikipedia.org/wiki/Bracket

以上是关于如何使用 log4net 在 AppData 文件夹中创建文件的主要内容,如果未能解决你的问题,请参考以下文章

如何使用 log4net 日志框架

如何使用 datePattern 在 log4net 中指定绝对文件路径?

如何使用 log4net 每个任务登录到不同的文件?

如何使用 log4net 日志框架

我如何在 F# 中使用 Log4Net?

如何以编程方式强制 log4net 释放日志文件以便可以访问它?