Questions tagged «log4net»

Apache log4net库是一个工具,可帮助程序员将日志语句输出到各种输出目标。log4net是优秀的Apache log4j™框架到Microsoft®.NET运行时的移植。在利用.NET运行时中的新功能的同时,我们使框架在本质上与原始log4j相似。

15
log4net与Nlog
已锁定。该问题及其答案被锁定,因为该问题是题外话,但具有历史意义。它目前不接受新的答案或互动。 任何人都有经验吗?他们如何相互对抗? 我们正计划使用其中之一来登录企业应用程序。 参考文献: log4net 日志 编辑:我们没有现有的依赖关系到nlog或log4net。
355 log4net  nlog 

6
如何追踪log4net问题
我一直都在使用log4net,但我从未想过的一件事是如何判断内部发生了什么。例如,我的项目中有一个控制台附加程序和一个数据库附加程序。我对数据库和代码进行了一些更改,现在数据库附加程序不再起作用。我会弄清楚最终为什么,但是如果我能看到log4net里面发生了什么,那将会很有帮助。 log4net是否会生成任何类型的输出,我可以查看这些输出以尝试确定问题的根源?
191 .net  logging  log4net 

13
Log4net不写入日志文件
我使用Log4net创建了一个简单的方案,但是由于消息未添加到日志文件中,所以我的附加程序似乎无法正常工作。 我将以下内容添加到web.config文件中: <configSections> <section name="log4net" type="log4net.Config.Log4NetConfigurationSectionHandler, log4net" requirePermission="false"/> </configSections> <log4net> <appender name="LogFileAppender" type="log4net.Appender.FileAppender"> <file value="D:\MyData\Desktop\LogFile.txt" /> <appendToFile value="true" /> <encoding value="utf-8" /> <layout type="log4net.Layout.SimpleLayout" /> </appender> <root> <level value="INFO" /> <appender-ref ref="LogFileAppender" /> </root> </log4net> 在全局ASAX文件中,我添加了: ILog logger = LogManager.GetLogger(typeof(MvcApplication)); 在Application_Start方法中: logger.Info("Starting the application..."); 我做错什么了?
159 c#  .net  asp.net  logging  log4net 

6
您可以用代码配置log4net而不使用配置文件吗?
我知道为什么log4net使用app.config文件来设置日志记录-因此您可以轻松更改信息的记录方式,而无需重新编译代码。但就我而言,我不想将app.config文件与可执行文件打包在一起。而且我不想修改我的日志记录设置。 有没有办法让我设置登录代码而不是使用app.config? 这是我的简单配置文件: <?xml version="1.0" encoding="utf-8" ?> <configuration> <configSections> <section name="log4net" type="log4net.Config.Log4NetConfigurationSectionHandler, log4net" /> </configSections> <log4net> <appender name="RollingLogFileAppender" type="log4net.Appender.RollingFileAppender"> <file value="Logs\EventLog.txt" /> <appendToFile value="false" /> <rollingStyle value="Size" /> <maxSizeRollBackups value="5" /> <maximumFileSize value="1GB" /> <layout type="log4net.Layout.PatternLayout"> <conversionPattern value="%date [%thread] %-5level %logger - %message%newline" /> </layout> </appender> <appender name="MemoryAppender" type="log4net.Appender.MemoryAppender"> </appender> …
136 c#  .net  logging  log4net 

5
配置Log4net写入多个文件
我想将日志从同一过程写入2个不同的日志文件。 使用log4net可以做到这一点吗? 我需要将单独的消息写入每个日志文件。如何将消息写到特定的附加程序?
130 log4net 

7
log4net层次结构和日志记录级别
这个网站说 可以为记录器分配级别。级别是log4net.Core.Level类的实例。按照优先级递增的顺序定义了以下级别: 所有 调试 信息 警告 错误 致命 关 DEBUG的优先级最低,而ERROR的优先级更高。 题 如果我设置了最小和最大示例DEBUG和ERROR,它将打印所有DEBUG,INFO,WARN和ERROR。不使用最小和最大过滤器。如果我指定错误(日志记录级别=错误),它将包括DEBUG,INFO和WARN <filter type="log4net.Filter.LevelRangeFilter"> <param name="LevelMin" value="ERROR"/> <param name="LevelMax" value="ERROR"/> </filter> 代替最小和最大过滤器。是否可以配置一个级别并在其下面包括所有其他级别进行日志记录。 示例-将级别设置为错误,它将包括调试,信息,警告和错误。log4net是否可能? 根据评论之一发布log4net配置: <?xml version="1.0" encoding="utf-8" ?> <configuration> <configSections> <section name="log4net" type="log4net.Config.Log4NetConfigurationSectionHandler,log4net" /> </configSections > <log4net debug="true"> <appender name="LogFileAppender" type="log4net.Appender.FileAppender"> <layout type="log4net.Layout.XMLLayout" /> --> <param name="File" value="TestLog.log" /> <param …

13
log4net无法正常工作
嘿,我的web.config中有此配置 <log4net> <appender name="LogFileAppender" type="log4net.Appender.FileAppender"> <param name="File" value="mylog.log" /> <param name="AppendToFile" value="true" /> <layout type="log4net.Layout.PatternLayout"> <param name="Header" value="" /> <param name="Footer" value="" /> <param name="ConversionPattern" value="%d [%t] %-5p %m%n" /> </layout> </appender> <appender name="ConsoleAppender" type="log4net.Appender.ConsoleAppender" > <layout type="log4net.Layout.PatternLayout"> <param name="Header" value="[Header]\r\n" /> <param name="Footer" value="[Footer]\r\n" /> <param name="ConversionPattern" value="%d [%t] …
123 c#  .net-4.0  log4net 


3
间歇性的log4net RollingFileAppender锁定文件问题
我们在开发和生产机器上看到间歇性问题,因此我们的日志文件没有被登录。 使用Visual Studio在开发和调试中运行时,我们在VS输出窗口中收到以下log4net错误消息: log4net:ERROR [RollingFileAppender] Unable to acquire lock on file C:\folder\file.log. 该进程无法访问文件'C:\ folder \ file.log',因为它正在被另一个进程使用。 log4net:ERROR XmlConfigurator: Failed to find configuration section 'log4net' in the application's .config file. Check your .config file for the <log4net> and <configSections> elements. 配置部分应如下所示: <section name="log4net" type="log4net.Config.Log4NetConfigurationSectionHandler,log4net" /> 我们当前针对该问题的解决方法是重命名最后一个日志文件。我们当然希望它会失败(由于上述文件锁定),但通常不会。由于aspnet_wp.exe进程的锁定,重命名失败了一两次。 我们的log4net配置部分如下所示: <log4net> <appender name="RollingLogFileAppender" type="log4net.Appender.RollingFileAppender"> …


3
如何使用Nant 0.91解决配置错误?
下载Nant 0.91之后,我得到了一些与配置或安全性有关的相当神秘的配置错误(请参阅下文)。 我试图将Nant可执行文件从0.86升级到0.91。 在Windows 7计算机上进行构建时,如何解决以下问题? log4net:ERROR XmlConfiguratorAttribute:获取ConfigurationFileLocation的异常。未设置ConfigFile和ConfigFileExtension属性时,必须能够解析ConfigurationFileLocation。System.Security.SecurityException:请求类型为“ System.Security.Permissions.FileIOPermission,mscorlib,Version = 4.0.0.0,Culture = neutral,PublicKeyToken = b77a5c561934e089”的权限失败。在System.Security.CodeAccessSecurityEngine.Check(对象需求,StackCrawlMark&stackMark,布尔isPermSet)在System.Security.CodeAccessSecurityEngine.Check(CodeAccessPermission cap,StackCrawlMark&stackMark)在System.Security.CodeAccessPermission.Demand()在System.AppDomainSetup.VerifyDir(在log4net.Config的log4net.Util.SystemInfo.get_ConfigurationFileLocation()处的字符串dir,布尔值归一化)。 失败的操作是:需求失败的第一个权限的类型是:System.Security.Permissions.FileIOPermission失败的程序集区域是:Internet 未处理的异常:System.Security.SecurityException:尝试访问配置节“ nant”时,对ConfigurationPermission的请求失败。要允许所有调用者访问此节的数据,请在声明此节的配置文件中将节属性'requirePermission'设置为'false'。---> System.Security.SecurityException:请求类型为“ System.Configuration.ConfigurationPermission,System.Configuration,Version = 4.0.0.0,Culture = neutral,PublicKeyToken = b03f5f7f11d50a3a”的权限失败。在System.Security.CodeAccessSecurityEngine.Check(对象需求,StackCrawlMark&stackMark,布尔isPermSet)在System.Security.CodeAccessSecurityEngine.Check(CodeAccessPermission cap,StackCrawlMark&stackMark)在System.Security.CodeAccessPermission。 (即将发布答案,以供参考。)
106 windows-7  build  log4net  nant 

6
我如何解决log4net不断更改publickeytoken
我们有一个asp.net 4.0项目,它使用几个依赖于log4net版本1.2.10.0的框架。今天,我试图包括一个依赖于log4net版本1.2.11.0的新框架,从那时起,我就一直陷入困境: log4net 1.2.10.0具有publickeytoken = 1b44e1d426115821 log4net 1.2.11.0具有publickeytoken = 669e0ddf0bb1aa2a 由于这些不同,因此我无法通过web.config中的runtime元素使用程序集重定向(使所有框架使用相同版本的log4net)或代码库(仅使新框架使用1.2.11.0版本)。 我在这里有什么选择? (为什么log4net会在版本之间不断变化,因为据我所知,丢失了密钥是在版本1.2.9.0和1.2.10.0之间进行切换的原因,它们又失去了密钥吗?我将自愿使用我的保管箱在需要时保持安全...) 编辑:好的,所以log4net的人显然有一个想法,用两个键来发布是个好主意,但这意味着您使用的每个框架都需要就他们偏爱的两种风格中的哪个达成一致,否则这些框架将无法正常工作。在同一个appdomain中并排。我是唯一发现这个可怕想法的人吗?如果每个人都这样做,那么一切都会崩溃,对吗? Edit2:正如我所说,我没有在业务代码中使用log4net,而是使用了一些依赖于1.2.10.0的框架,当我尝试使用依赖于1.2.11.0的新框架时出现了问题(新密钥),因此Stefans的答案不适用,因为新框架将需要新密钥,而不是旧密钥

5
LogManager的log4net参数
为什么大多数log4net示例通过执行以下操作来获取类的记录器: private static ILog logger = LogManager.GetLogger( System.Reflection.MethodBase.GetCurrentMethod().DeclaringType); 而不只是传递typeof(MyClass): private static ILog logger = LogManager.GetLogger(typeof(MyClass)); 除了第一个选项不需要您键入特定的类名之外,还有其他原因吗?
98 log4net 

3
Log4Net,如何向我的日志中添加自定义字段
我使用log4net.Appender.AdoNetAppender附加程序。 我的log4net表是以下字段[Date],[Thread],[Level],[Logger],[Message],[Exception] 我需要在log4net表中添加另一个字段(例如SalesId),但是当记录错误或信息消息时,如何在xml和代码中指定记录“ SalesId”的信息? 例如 log.Info("SomeMessage", SalesId) 这是log4net xml <appender name="SalesDBAppender" type="log4net.Appender.AdoNetAppender"> <bufferSize value="1" /> <connectionType value ="System.Data.SqlClient.SqlConnection" /> <connectionString value="Data Source=..." /> <commandText value="INSERT INTO Log4Net ([Date],[Thread],[Level],[Logger],[Message],[Exception]) VALUES (@log_date, @thread, @log_level, @logger, @message, @exception)" /> <parameter> <parameterName value="@log_date" /> <dbType value="DateTime" /> <layout type="log4net.Layout.RawTimeStampLayout" /> </parameter> <parameter> <parameterName value="@thread" …
98 c#  log4net  appender 

13
外部文件中的Log4Net配置不起作用
我们正在使用log4net,并希望在外部配置文件中指定它的配置(与其他部分一样)。为此,我们将App.config中的log4net部分更改为: ... <section name="log4net" type="log4net.Config.Log4NetConfigurationSectionHandler, log4net"/> ... <log4net configSource="Log.config" /> ... 在Log.Config文件(与App.config相同的目录)中,我们具有: <log4net> <appender name="General" type="log4net.Appender.FileAppender"> <file value="myapp.log" /> <layout type="log4net.Layout.SimpleLayout" /> </appender> <root> <appender-ref ref="General" /> </root> </log4net> 但是,当我们运行该应用程序时,没有创建日志文件(也没有完成日志记录)。没有错误消息输出到控制台。 如果我们将Log.config文件的内容移回到App.config中(替换上面的第一行代码),它将按预期工作。知道为什么它不能在外部文件中工作吗?

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.