我还没有完成这个工作 - 如何为我的控制台输出设置DEBUG,为我的FileAppender设置INFO?也就是说,我如何更改下面的配置,以便我可以让ConsoleAppender从DEBUG向上泵出所有日志记录?请注意,这两个appender都需要覆盖所有日志记录(即我不想使用仅为一个记录器名称更改日志级别的作用域记录器元素).
<log4net>
<root>
<level value="INFO" />
<appender-ref ref="LogFileAppender" />
<appender-ref ref="ConsoleAppender" />
</root>
<appender name="LogFileAppender" type="log4net.Appender.FileAppender" >
<param name="File" value="log-file.txt" />
<param name="AppendToFile" value="true" />
<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] %-5p %c [%x] - %m%n"
/>
</layout>
<filter type="log4net.Filter.LevelRangeFilter">
<param name="LevelMin" value="DEBUG" />
<param name="LevelMax" value="WARN" />
</filter>
</appender>
<appender name="ConsoleAppender" type="log4net.Appender.ConsoleAppender" >
<layout type="log4net.Layout.PatternLayout">
<param name="ConversionPattern" value="%d [%t] %-5p %c [%x] - %m%n" />
</layout>
</appender>
</log4net>
Run Code Online (Sandbox Code Playgroud) 我的App.config如下.该文件与调用的项目相同:
log4net.Config.XmlConfigurator.Configure();
private static log4net.ILog Log = log4net.LogManager.GetLogger(System.Reflection.MethodBase.GetCurrentMethod().DeclaringType);
Run Code Online (Sandbox Code Playgroud)
但是我收到了:
Log4net:ERROR XmlConfigurator无法在应用程序的.config文件中找到配置节'log4net'.检查.config文件中的
<log4net>和<configSections>元素.配置部分应如下所示:<section name="log4net" type="log4net.Config.Log4NetConfigurationSectionHandler,log4net" /
因为我刚开始使用log4net,我觉得我犯了一个愚蠢的错误.对此有何帮助?
<!-- language: xml -->
<?xml version="1.0" encoding="utf-8" ?>
<configuration>
<configSections>
<section name="log4net"
type="log4net.Config.Log4NetConfigurationSectionHandler, log4net"/>
</configSections>
<log4net>
<appender name="RollingFileAppender" type="log4net.Appender.RollingFileAppender">
<file value="C:\log-file.txt" />
<appendToFile value="true"/>
<rollingStyle value="Size" />
<maximumFileSize value="1MB" />
<staticLogFileName value="true" />
<maxSizeRollBackups value="10" />
<conversionPattern value="%date [%thread] %-5level %location %logger - %message%newline" />
<layout type="log4net.Layout.SimpleLayout" />
</appender>
<root>
<level value="ALL" />
<appender-ref ref="RollingFileAppender" />
</root>
</log4net>
</configuration>
Run Code Online (Sandbox Code Playgroud) 我在窗口应用程序中从app_config读取连接字符串时收到此异常"配置系统无法初始化"
string con = ConfigurationSettings.AppSettings["ConnectionString"].ToString();
Run Code Online (Sandbox Code Playgroud)
输入以下行后在此行上
[assembly: log4net.Config.XmlConfigurator(Watch = true)]
Run Code Online (Sandbox Code Playgroud)
在AssemblyInfo.cs中.如果我从Assemblyinfo.cs中删除这一行,那么我没有异常我添加此程序集用于记录目的
如何使用Log4net Smtp appender自定义电子邮件正文?我想向身体添加自定义消息.
我使用log4net进行了以下配置.问题是我的C#代码中的记录器现在将错误记录到两个日志文件中.我在同一个Windows服务中有两个不同的服务类.我使用以下行在一个服务中初始化记录器:
private static readonly ILog _logger = LogManager.GetLogger(typeof(EmployeeImportService));
Run Code Online (Sandbox Code Playgroud)
但是当这个服务运行并记录时,它会写入两个日志文件.
<log4net>
<appender name="LogFileAppender" type="log4net.Appender.FileAppender">
<param name="File" value="C:\Temp\HRFiles\Sharp\Log\Log.txt" />
<param name="AppendToFile" value="true" />
<layout type="log4net.Layout.PatternLayout">
<param name="ConversionPattern" value="%d [%t] %-5p %c %m%n" />
</layout>
</appender>
<appender name="OvertimeLogFileAppender" type="log4net.Appender.FileAppender">
<param name="File" value="C:\Temp\HRFiles\YTD\Log\Log.txt" />
<param name="AppendToFile" value="true" />
<layout type="log4net.Layout.PatternLayout">
<param name="ConversionPattern" value="%d [%t] %-5p %c %m%n" />
</layout>
</appender>
<root>
<level value="ALL" />
<appender-ref ref="LogFileAppender" />
<appender-ref ref="OvertimeLogFileAppender" />
</root>
</log4net>
Run Code Online (Sandbox Code Playgroud)
如何配置它以便每个服务都写入自己的日志文件?我读到配置中的logger标签有一个additivity属性可以解决这个问题,但我的配置中没有logger元素.
我有 log4net 日志记录在我的开发机器上运行良好
我现在已经部署到 goDaddy,它似乎没有做任何事情。我已经尝试过这里的建议
Log4Net 在开发机器上工作,部署到共享主机时失败(使用相同的 db/connstring)
但仍然没有运气
我没有收到任何错误,但也没有创建日志文件
我曾尝试根据这里的 Godaddy 帮助文件使用绝对路径
https://au.godaddy.com/help/what-is-my-absolute-path-16024
这是我在我的 web 配置文件中的配置
<log4net debug="true">
<appender name="RollingLogFileAppender" type="log4net.Appender.RollingFileAppender">
<file value="G:\PleskVhosts\mydomain\httpdocs\logs\log4net.txt" />
<appendToFile value="true" />
<rollingStyle value="Size" />
<maxSizeRollBackups value="10" />
<maximumFileSize value="10MB" />
<staticLogFileName value="true" />
<layout type="log4net.Layout.PatternLayout">
<conversionPattern value="%-5p %d %5rms %-22.22c{1} %-18.18M - %m%n" />
</layout>
</appender>
<root>
<level value="ALL" />
<appender-ref ref="RollingLogFileAppender" />
</root>
</log4net>
<system.diagnostics>
<trace autoflush="true" indentsize="4">
<listeners>
<add name="myListener" type="System.Diagnostics.TextWriterTraceListener" initializeData="G:\PleskVhosts\mydomain\httpdocs\logs\TextWriterOutput.log" />
<remove name="Default" />
</listeners>
</trace>
</system.diagnostics>
Run Code Online (Sandbox Code Playgroud)
我没有得到任何 log4net.txt …
我有一个 VS2015 解决方案,其中包含一个服务层,该服务层公开一组 WCF 服务,以及一个使用它们的 WPF 客户端。我已经配置了 log4net 并且在服务层工作正常
我现在想在客户端使用 log4net,因此添加了 log4net NuGet 包,并将节点从服务层的配置文件复制到客户端的 App.config 文件中。完整的文件看起来像这样......
<?xml version="1.0"
encoding="utf-8"?>
<configuration>
<startup>
<supportedRuntime version="v4.0"
sku=".NETFramework,Version=v4.5.2" />
</startup>
<log4net>
<appender name="RollingFileAppender"
type="log4net.Appender.RollingFileAppender">
<param name="File"
value="PhysioDiary.log" />
<appendToFile value="true" />
<rollingStyle value="Size" />
<maxSizeRollBackups value="2" />
<maximumFileSize value="1MB" />
<staticLogFileName value="true" />
<layout type="log4net.Layout.PatternLayout">
<conversionPattern value="%date [%thread] %-7level %logger - %message%newline%exception" />
</layout>
</appender>
<root>
<level value="DEBUG" />
<appender-ref ref="RollingFileAppender" />
</root>
</log4net>
<system.serviceModel>
<behaviors>
<endpointBehaviors>
<behavior name="LargeMessageBehavior">
<dataContractSerializer maxItemsInObjectGraph="2147483647" />
</behavior>
</endpointBehaviors> …Run Code Online (Sandbox Code Playgroud) 我正在使用VS 2013和Log4Net来记录.Net应用程序的数据。我可以创建日志。但是当我尝试删除或移动日志文件时,它说
The file is open in another process...
Run Code Online (Sandbox Code Playgroud)
即使浏览器关闭,我也会收到此消息。关闭Visual Studio IDE工具时,我只能编辑/剪切/重命名..日志文件。我怎么解决这个问题。我希望能够随时删除/编辑文件。这是web.config中使用的log4net的代码
<configSections>
<section name="log4net"
type="log4net.Config.Log4NetConfigurationSectionHandler, log4net" />
</configSections>
<log4net>
<appender name="RollingFile" type="log4net.Appender.RollingFileAppender">
<file value="c:\logs\jwhXMLDev.log" />
<appendToFile value="true" />
<!-- <layout type="log4net.Layout.XmlLayout"/>-->
<layout type="log4net.Layout.XmlLayout" />
</appender>
<appender name="MemoryAppender" type="log4net.Appender.MemoryAppender">
<onlyFixPartialEventData value="true" />
</appender>
<root>
<level value="ALL" />
<appender-ref ref="RollingFile" />
</root>
</log4net>
Run Code Online (Sandbox Code Playgroud) 我的问题是我的数据库日志不显示秒(默认格式似乎是“yyyy-MM-dd hh:mm:00”。有什么方法可以改变这一点并至少获得几秒钟的东西(毫秒将是一个加号) )?
这是我的附加程序配置:
<appender name="AdoNetAppender" type="log4net.Appender.AdoNetAppender">
<bufferSize value="1" />
<connectionType value="System.Data.SqlClient.SqlConnection, System.Data, Version=1.0.3300.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" />
<connectionString value="data source=MyDB;initial catalog=LogSpace;integrated security=True;persist security info=True;Application Name="MyApp "" />
<commandText value="INSERT INTO Log ([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" />
<dbType value="String" />
<size value="255" />
<layout type="log4net.Layout.PatternLayout">
<conversionPattern value="%thread" />
</layout>
</parameter>
<parameter>
<parameterName value="@log_level" />
<dbType value="String" />
<size value="50" />
<layout type="log4net.Layout.PatternLayout"> …Run Code Online (Sandbox Code Playgroud) 将日志保存到 Azure Blob 存储时,是否可以每天创建不同的文件夹?现在我正在使用这个配置,它工作正常
<appender name="AzureAppender2" type="log4net.Appender.AzureBlobAppender, log4net.Appender.Azure">
<param name="ContainerName" value="testcon" />
<param name="DirectoryName" value="myfolder/logs.txt" />
<param name="ConnectionString" value="DefaultEndpointsProtocol=https;AccountName=testcon;AccountKey="rftgdfgdfgfdg78=="/>
<layout type="log4net.Layout.PatternLayout">
<conversionPattern value="%date [%thread] %-5level %logger [%property{NDC}] - %message%newline" />
</layout>
</appender>
Run Code Online (Sandbox Code Playgroud)
我已经试过了
<param name="DirectoryName" value=%date/" />
Run Code Online (Sandbox Code Playgroud)
但它不起作用
我想要的是能够每天动态使用不同的文件夹:比如
目录名称 = 2016-05-13
目录名称 = 2016-05-12
目录名称 = 2016-05-11
这是可以实现的吗?
谢谢
log4net azure log4net-configuration log4net-appender azure-blob-storage
我正在使用利用log4net的第三方程序集.有问题的程序集经常记录到"信息"日志级别.这会给我的应用程序带来很多噪音,这是我不想要的.
有没有办法为特定程序集配置不同的日志级别?
我尝试了一切。使用本地文件可以正常工作,我必须在本地计算机中安装 SQL Server 实例并且也可以正常工作,但是当我将连接字符串更改为 SQL Azure 时,该实例就不起作用了。我正在我的应用程序所在的 Visual Studio 内的服务器资源管理器中测试相同的用户和密码。我不知道还能做什么。
log4net connection-string log4net-configuration azure-sql-database
我正在使用OracleAppender在Oracle 11g表中记录消息.但它没有记录任何东西.我也使用EventLogAppender和RollingFileAppender工作正常并记录消息.但OracleAppender无法运行.Oracle appender的log4Net配置部分如下所示:
<connectionType value="Oracle.DataAccess.Client.OracleConnection, Oracle.DataAccess, Version=4.113.3.0, Culture=neutral, PublicKeyToken=89b483f429c47342" />
<connectionString value="DATA SOURCE= servername:portname/DBNAME; USER ID= user-id; PASSWORD= password;" />
<!--Below is the hardcoded insert for testing purpose-->
<commandText value="Insert into MSG_LOG (LOG_ID, COMPONENT_NAME, LOG_DETAILS, LOG_PARAMETER_LIST, LOG_TYPE, REQUEST_ID, QUEUE_ID, OTHER_ID, LOG_USER_ID, LOG_DATE)
VALUES (335, '', '', '', 'test', '','', '', 'test', NULL)" />
Run Code Online (Sandbox Code Playgroud)
我现在已经挣扎了很长一段时间了,所以想到要问.您是否能够看到任何我可能无视的明显问题?
非常感谢.