我已经下载了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>
我有一个Entry表单并创建并声明了
private static readonly log4net.ILog logger = log4net.LogManager.GetLogger
(System.Reflection.MethodBase.GetCurrentMethod().DeclaringType);
这是在部分类内部以及我在这里使用的日志记录
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。 我怎样才能做到这一点?
答案 0 :(得分:2)
您已经以不同的方式初始化了log4net 3,首先选择如何初始化和配置log4net。使用System.Configuration API配置应用程序的唯一方法是调用log4net.Config.XmlConfigurator.Configure()。所以你必须删除程序集:log4net属性。如果要使用log4net配置文件,最好通过assembly.cs中的属性执行此操作。最后一种方法使您可以在应用程序运行时更改配置。
答案 1 :(得分:1)
@peer是对的,您需要选择一种配置log4net的方法并正确使用它。
我认为您的直接问题是您已在汇编属性中指定app.config
作为配置文件,但您必须指定your_app_name.exe.config
,因为这将是文件的名称在构建项目之后(名称将根据应用程序的实际名称而有所不同,请查看构建输出目录以查看它的名称)
或者,作为&#34; If neither of the ConfigFile or ConfigFileExtension properties are specified, the application configuration file (e.g. TestApp.exe.config) will be used as the log4net configuration file.&#34;只需省略ConfigFile属性:
[assembly: log4net.Config.XmlConfigurator(Watch=true)]
(文档声明 可以观看app.config文件,只要您将FileInfo传递给ConfigureAndWatch
或使用汇编属性。)
如果您还有其他问题,请将log4net设置为调试模式,并在配置中使用声明<log4net debug=true>
,并在运行时检查跟踪输出是否存在任何报告的配置问题。