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

roo*_*i n 14 log4net app-config c#-4.0 log4net-configuration

如何在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>
Run Code Online (Sandbox Code Playgroud)

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

Pet*_*ter 16

看来你正在以正确的方式做到这一点,但是有些情况似乎变量的外壳有所不同:关于这个主题的另一个问题

你可以试试:${AppData}工作

  • @benjymous它适用于`$ {LocalAppData}`(用大括号替换圆括号).如果有人需要澄清:https://en.wikipedia.org/wiki/Bracket (2认同)