相关疑难解决方法(0)

使用xml文件配置log4net

我尝试配置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)

但现在没有记录,有人可以解释一下吗?

.net logging log4net

17
推荐指数
3
解决办法
4万
查看次数

在Log4Net或NLog(或其他一些记录器)中是否有一种方法可以以执行堆栈嵌套的XML或JSON格式输出日志?

在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用来记录(目前只使用缩进)每个方法入口/出口和异常

c# logging log4net nlog postsharp

6
推荐指数
1
解决办法
900
查看次数

如何解析log4net日志文件?

我正在使用log4net进行日志记录.是否有任何直接的方法来解析结果文件?

.net logging log4net parsing

5
推荐指数
1
解决办法
6452
查看次数

Log4net XMLLayout产生太多元素

我刚刚接管了一个使用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)

c# log4net

3
推荐指数
1
解决办法
4120
查看次数

Log4Net Layout.XmlLayout 不会在 .NET Core 平台中创建日志

我已经为我的应用程序实现了记录器,我想在 .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)

c# log4net .net-core

2
推荐指数
1
解决办法
2173
查看次数

标签 统计

log4net ×5

c# ×3

logging ×3

.net ×2

.net-core ×1

nlog ×1

parsing ×1

postsharp ×1