安装log4net无需配置

时间:2020-05-20 14:44:41

标签: c# wpf visual-studio

所以我需要安装log4net软件包进行日志记录。效果很好,没问题,但似乎没有正确配置,我也无法识别app.config文件中的log4net子元素。

我关注了此链接/线程log4net

我已经在属性文件中添加了程序集,并在app.config文件中添加了configsections。我似乎也确实在packages config中找到了该软件包,这对我来说似乎是正确的。但是在其他使用log4net的项目中,我也看到了带有程序集名称和公共令牌的运行时部分。

我安装了nuget包资源管理器,但是它只打开nugetpkg文件或其他东西,而Referenece和东西是dll库。除了执行此操作的方法以外,进行配置似乎并不容易,因为通常在安装软件包时会为您放入所有配置。

无论如何,我在做错什么吗?如果没有,我下一步该怎么做?

关于公共令牌,我也尝试了sn.exe -T程序集,但是当我键入Log4net或Log4net的Log4Net时,似乎找不到该程序集

1 个答案:

答案 0 :(得分:1)

使用Log4net时,最好添加一个专门用于log4net的单独的配置文件。 除了可能使用的任何app.config外,这是一个不同的文件。

从技术上讲,您可以将json文件用于config,也许可以在app.config中添加一个部分。我从未尝试过后者。

不要做任何一个。

不同的设置有巨大且令人困惑的负载,因此您最好使事情变得简单。

那不是我以这种方式工作的唯一原因。

此方法也适用于所有选项。当我执行asp.net core或控制台应用程序或其他操作时,我使用的是相同的选项。

无论如何,一旦开始工作,请留出后遗症。

您添加了log4net nuget包(我收集到您已经完成了)。

这将为您提供dll并引用它们。

尽管这就是您要做的一切。

因为它是配置文件,它告诉它如何处理日志级别,并且在exe中的log4net读取这些设置之前,什么也不会发生。

然后添加一个log4net.config文件。

这必须放在入口点项目的根文件夹中。 这样一来,它将结束于exe旁边的bin文件夹中。

您可以复制互联网上的大量示例配置。 这是一个。

如果仅将配置文件添加到项目中,则将无法进行任何操作,因为在编译和运行exe时,将不会在查找位置的磁盘上找到该文件。

您需要获取构建过程才能复制该文件。

您可以在其上设置2个属性。

在解决方案资源管理器中选择文件。

通过设置默认的Visual Studio,在解决方案资源管理器下方,您可以拥有属性。

设置构建操作:将内容复制到输出目录:如果较新则复制。

构建您的项目。

在您的垃圾箱中查找并找到已编译的exe。

它旁边应该是新配置文件的副本。

只要您的代码编写日志条目很好并且可以访问配置文件引用的文件夹,那么它就应该起作用。

编辑:

如果仍然找不到配置,则明确告诉它要读取哪个配置文件。您可以通过添加以下行来做到这一点:

[assembly: log4net.Config.XmlConfigurator(ConfigFile = "log4net.config")]

到您的assemblyinfo.cs文件。 那是在核心网络应用程序的属性下。

相关问题