我尝试配置log4net以将所有内容记录到控制台输出.我有一个名为的配置文件Log4Net.config
<?xml version="1.0" encoding="utf-8" ?>
<configuration>
<configSections>
<section name="log4net" type="log4net.Config.Log4NetConfigurationSectionHandler, log4net" />
</configSections>
<log4net>
<appender name="ConsoleAppender" type="log4net.Appender.ConsoleAppender" >
<layout type="log4net.Layout.PatternLayout">
<conversionPattern value="%date [%thread] %-5level %logger [%ndc] - %message%newline" />
</layout>
</appender>
<root>
<level value="INFO" />
<appender-ref ref="ConsoleAppender" />
</root>
</log4net>
</configuration>
Run Code Online (Sandbox Code Playgroud)
我有我的主要课程(只是一个测试案例)
namespace TestLog4Net {
class Program {
private static readonly ILog log = LogManager.GetLogger(typeof(Program));
static void Main(string[] args) {
log.Info("Info");
log.Error("Error");
Console.ReadKey();
}
}
}
Run Code Online (Sandbox Code Playgroud)
我把这些线添加到了 AssemblyInfo.cs
[assembly: log4net.Config.XmlConfigurator(
ConfigFile = "Log4Net.config", Watch = true)]
Run Code Online (Sandbox Code Playgroud)
但现在没有记录,有人可以解释一下吗?
在Log4Net或NLog(或其他一些记录器)中是否有一种方法可以以执行堆栈嵌套的XML或JSON格式输出日志,这样如果A()调用函数B(7)调用C("something"),它将输出如下内容:
<Method name="A">
<Method name="B" params="(int) 7">
<Method name="C" params="(string) 'something'"/>
</Method>
</Method>
Run Code Online (Sandbox Code Playgroud)
甚至更好:
<Method name="A">
<Method name="B" params="(int) 7">
<Params>
<int>7</int>
</Params>
<Method name="C">
<Params>
<string>something</string>
</Params>
</Method>
</Method>
</Method>
Run Code Online (Sandbox Code Playgroud)
为什么?因此,我可以使用(例如)XML Notepad或某些JSON-viewer(不知道任何显着的...)来快速折叠(不相关)或展开(相关)子调用,同时试图理解发生了什么错误.我PostSharp用来记录(目前只使用缩进)每个方法入口/出口和异常
我正在使用log4net进行日志记录.是否有任何直接的方法来解析结果文件?
我刚刚接管了一个使用log4net xmllayout进行日志记录的C#项目.
问题是日志中的每个事件都有4个数据值:machinename,hostname,username和app,它们总是相同但是每个事件都会重复,从而导致不必要的大型日志文件.
如何防止这些被记录?
配置文件:
<?xml version="1.0"?>
<configuration>
<!--log4net setting-->
<configSections>
<section name="log4net" type="log4net.Config.Log4NetConfigurationSectionHandler, log4net" />
</configSections>
<log4net>
<appender name="RollingFileAppender" type="log4net.Appender.RollingFileAppender">
<file type="log4net.Util.PatternString" value="%env{LocalAppData}\\myApp\\myApp.log.xml" />
<appendToFile value="true" />
<rollingStyle value="Size" />
<maxSizeRollBackups value="1" />
<maximumFileSize value="3MB" />
<staticLogFileName value="true" />
<layout type="log4net.Layout.XmlLayoutSchemaLog4j">
</layout>
</appender>
<root>
<level value="DEBUG" />
<appender-ref ref="RollingFileAppender" />
</root>
</log4net>
<system.serviceModel>
<bindings>
<basicHttpBinding>
<binding name="BasicHttpBinding_myAppWCF" closeTimeout="00:01:00"
openTimeout="00:01:00" receiveTimeout="00:10:00" sendTimeout="00:01:00"
allowCookies="false" bypassProxyOnLocal="false" hostNameComparisonMode="StrongWildcard"
maxBufferSize="65536" maxBufferPoolSize="524288" maxReceivedMessageSize="65536"
messageEncoding="Text" textEncoding="utf-8" transferMode="Buffered"
useDefaultWebProxy="true">
<readerQuotas maxDepth="32" maxStringContentLength="8192" maxArrayLength="16384"
maxBytesPerRead="4096" maxNameTableCharCount="16384" />
<security …Run Code Online (Sandbox Code Playgroud) 我已经为我的应用程序实现了记录器,我想在 .NET Core 控制台应用程序上以 XML 格式 (XmlLayout) 记录活动。Log4Net 配置包括 FileAppender 和 XmlFileAppender,如下所示。
<log4net>
<appender name="FileAppender" type="log4net.Appender.FileAppender">
<file value="C:\Log4NetLogs\UaGatewayText.log.txt"/>
<layout type="log4net.Layout.PatternLayout">
<conversionPattern value="[%date{dd.MM.yyyy}] [%date{ABSOLUTE}] [%thread]
%level %property{TEST - Ua.Gateway} %message%newline" />
</layout>
</appender>
<appender name="ConsolAppender"
type="log4net.Appender.ConsoleAppender">
<layout type="log4net.Layout.PatternLayout">
<conversionPattern value="[%dae{DATE}] [%date{ABSOLUTE}] [%thread]
[%level] %message%newline" />
</layout>
</appender>
<appender name="XmlFileAppender"
type="log4net.Appender.RollingFileAppender">
<file type="log4net.Util.PatternString"
value="C:\Log4NetLogs\UaGatewayXml.log.xml" />
<appendToFile value= "true" />
<rollingStyle value="size"/>
<maximumFileSize value ="50MB"/>
<maxSizeRollBackups value ="10"/>
<layout type="log4net.Layout.XmlLayout" />
</appender>
<root>
<level value="ALL" />
<appender-ref ref="FileAppender" />
<appender-ref ref="XmlFileAppender" />
</root> …Run Code Online (Sandbox Code Playgroud)