日志文件不是使用log4net创建的

日志文件不是使用log4net创建的,log4net,app-config,log4net-configuration,Log4net,App Config,Log4net Configuration,我已经下载了log4net.dll,并将其添加为服务参考。 我创建的一个项目有app.config,我在其中进行了以下配置 <?xml version="1.0"?> <configuration> <configSections> <section name="log4net"type="log4net.Config.Log4NetConfigurationSectionHandler,Log4net"/> </configSect

我已经下载了log4net.dll,并将其添加为服务参考。 我创建的一个项目有app.config,我在其中进行了以下配置

<?xml version="1.0"?>
<configuration>
<configSections>
    <section name="log4net"type="log4net.Config.Log4NetConfigurationSectionHandler,Log4net"/>
</configSections>
<log4net>       
    <appender name="RollingLogFileAppender" type="log4net.Appender.RollingFileAppender" >
        <param name="File" value="C:\\Users\\<myid>\\Desktop\\error.log"/>
        <appendToFile value="true" />
        <rollingStyle value="Size" />
        <maxSizeRollBackups value="10" />
        <maximumFileSize value="10MB" />
        <staticLogFileName value="true" />
    </appender>
    <root>
        <level value="ALL" />
        <appender-ref ref="RollingFileAppender" />
    </root>
</log4net>
<startup>
<supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.0"/>
</startup>
<system.serviceModel>
    <bindings />
    <client />
</system.serviceModel>
</configuration>
这是在分部类和我在这里使用的日志记录中实现的

 private void Entry_Load(object sender, EventArgs e)
    {
        log4net.Config.XmlConfigurator.Configure();
        logger.Debug("logged");            
    }
我补充说

[assembly: log4net.Config.XmlConfigurator(ConfigFile = "app.config", Watch = true)]
在Assemblyinfo.cs类中

并且在main.cs类中也添加了这个

static void Main(string[] args)
{
            log4net.Config.XmlConfigurator.Configure();
            logger.Debug("app started");
    }
日志文件本身并没有创建,当我调试它时,它会正确地运行这些代码。 对于使用.net 4.0 c#的桌面应用程序,我正在使用log4net.dll版本1.2.13。
如何实现这一点?

您已经用3种不同的方式初始化了log4net,请首先选择如何初始化和配置log4net。使用System.Configuration API配置应用程序的唯一方法是调用log4net.Config.XmlConfigurator.configure()。因此,必须删除assembly:log4net属性。如果要使用log4net配置文件,最好通过assembly.cs中的属性来实现。最后一种方法使您能够在应用程序运行时更改配置


@peer是正确的,您需要选择一种配置log4net的方法并正确使用它

我认为您的直接问题是您已经在程序集属性中指定了
app.config
作为配置文件,但是您必须指定
your\u app\u name.exe.config
,因为这将是项目生成后的文件名(名称将根据应用程序的实际名称而有所不同,请查看生成输出目录以查看其名称)

或者,作为“”,只需完全忽略ConfigFile属性:

[assembly: log4net.Config.XmlConfigurator(Watch=true)]
(文档说明,可以查看app.config文件,只要您将文件信息传递给
ConfigureAndWatch
或使用程序集属性。)


但是,如果您还有任何问题,请使用配置中的声明
将log4net设置为调试模式,并在运行时检查跟踪输出是否存在任何报告的配置问题。

在使用程序集属性配置log4net时,您可以使用
app.config
文件-从链接:“如果未指定ConfigFile或ConfigFileExtension属性,则应用程序配置文件(例如TestApp.exe.config)将用作log4net配置文件。“@stuartd-我现在创建了一个新的log4net.config文件来管理设置。我是否也应该添加下载log4net.dll时的.xml文件?@stuartd-是的,在阅读手册后可以进行配置现在我可以创建和记录了。
[assembly: log4net.Config.XmlConfigurator(Watch=true)]