【问题标题】:How to create a file in the AppData folder using log4net如何使用 log4net 在 AppData 文件夹中创建文件
【发布时间】: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>

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

【问题讨论】:

    标签: c#-4.0 log4net app-config log4net-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
    猜你喜欢
    • 2014-01-17
    • 1970-01-01
    • 2013-05-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-09-16
    • 1970-01-01
    相关资源
    最近更新 更多