标签: log4net-configuration

log4net层次结构和日志记录级别

这个网站

可以为记录器分配级别.级别是log4net.Core.Level类的实例.以优先级递增的顺序定义以下级别:

  • 所有
  • DEBUG
  • 信息
  • 警告
  • 错误
  • 致命
  • 关闭

DEBUG似乎具有最低优先级,ERROR更高.

  • 如果我设置Min和Max示例DEBUG和ERROR,则会打印出DEBUG,INFO,WARN和ERROR.不使用最小和最大过滤器.如果我指定ERROR(Logging level = ERROR)它是否包括DEBUG,INFO和WARN
 <filter type="log4net.Filter.LevelRangeFilter">
     <param name="LevelMin" value="ERROR"/>
     <param name="LevelMax" value="ERROR"/>
 </filter>
Run Code Online (Sandbox Code Playgroud)

而不是最小和最大过滤器.是否可以配置级别并包括其下的所有其他级别以进行日志记录.

示例 - 将级别设置为错误,它将包括DEBUG,INFO,WARN和ERROR.这可能与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 name="AppendToFile" value="false" />
        <layout type="log4net.Layout.PatternLayout">
            <header type="log4net.Util.PatternString" value="[START LOG] %newline" />
            <footer type="log4net.Util.PatternString" value="[END LOG] %newline" />
            <conversionPattern value="%d [%t] %-5p - …
Run Code Online (Sandbox Code Playgroud)

c# log4net log4net-configuration

118
推荐指数
6
解决办法
18万
查看次数

如何配置log4net以在调试模式下打印到控制台

有没有办法配置log4net以在调试期间将日志打印到控制台和文件?

我试图通过在日志发生时立即观察日志来找到一种有效调试软件的方法.

写入文件对我来说是有问题的,因为我不想等到文件被刷新到磁盘然后打开它.

因此我更喜欢它写入控制台.

你有什么建议?

我添加了app.config附加附加的文件,但我无法显示结果控制台.

以下是我的app.config配置:

<?xml version="1.0"?>
<configuration>
  <configSections>
    <section name="log4net" type="log4net.Config.Log4NetConfigurationSectionHandler, log4net" />
  </configSections>
    <system.serviceModel>
        <bindings>
            <wsHttpBinding>
                <binding name="WSHttpBinding_IProviderService" closeTimeout="00:01:00" openTimeout="00:01:00" receiveTimeout="00:10:00" sendTimeout="00:01:00" bypassProxyOnLocal="false" transactionFlow="false" hostNameComparisonMode="StrongWildcard" maxBufferPoolSize="524288" maxReceivedMessageSize="65536" messageEncoding="Text" textEncoding="utf-8" useDefaultWebProxy="true" allowCookies="false">
                    <readerQuotas maxDepth="32" maxStringContentLength="8192" maxArrayLength="16384" maxBytesPerRead="4096" maxNameTableCharCount="16384"/>
                    <reliableSession ordered="true" inactivityTimeout="00:10:00" enabled="false"/>
                    <security mode="Message">
                        <transport clientCredentialType="Windows" proxyCredentialType="None" realm=""/>
                        <message clientCredentialType="Windows" negotiateServiceCredential="true" algorithmSuite="Default"/>
                    </security>
                </binding>
            </wsHttpBinding>
        </bindings>
        <client>
            <endpoint address="http://localhost:8081/AP2" binding="wsHttpBinding" bindingConfiguration="WSHttpBinding_IProviderService" contract="IProviderService" name="WSHttpBinding_IProviderService">
                <identity>
                    <dns value="localhost"/>
                </identity>
            </endpoint>
        </client>
    </system.serviceModel>
   <log4net debug="true">
    <appender name="RollingLogFileAppender" type="log4net.Appender.RollingFileAppender"> …
Run Code Online (Sandbox Code Playgroud)

c# debugging log4net log4net-configuration

55
推荐指数
2
解决办法
6万
查看次数

如何在Asp.net core 2.0中使用log4net

log4net在我的asp.net core 2.0应用程序中配置,如本文中提到的LINK

Program.cs中

public static void Main(string[] args)
{
    var logRepository = LogManager.GetRepository(Assembly.GetEntryAssembly());
    XmlConfigurator.Configure(logRepository, new FileInfo("log4net.config"));

    BuildWebHost(args).Run();
}
Run Code Online (Sandbox Code Playgroud)

HomeController的

public class HomeController : Controller
{
    private static readonly log4net.ILog log = log4net.LogManager.GetLogger(typeof(HomeController));

    public IActionResult Error()
    {
        log.Info("Hello logging world!");
        return View(new ErrorViewModel { RequestId = Activity.Current?.Id ?? HttpContext.TraceIdentifier });
    }
}
Run Code Online (Sandbox Code Playgroud)

log4net.config

<?xml version="1.0" encoding="utf-8"?>
<configuration>
  <log4net>
    <root>
      <level value="ALL" />
      <appender-ref ref="RollingFile" />
    </root>
    <appender name="RollingFile" type="log4net.Appender.FileAppender">
      <file value="?C:\Temp\app.log" /> 
      <layout type="log4net.Layout.PatternLayout">
        <conversionPattern value="%-5p %d{hh:mm:ss} …
Run Code Online (Sandbox Code Playgroud)

c# asp.net log4net log4net-configuration asp.net-core-2.0

45
推荐指数
4
解决办法
7万
查看次数

配置log4net以根据级别向不同的appender发送错误

我想将Info Level&above发送到XML appender和Error/Fatal Level到EventLog appender.

我认为我需要修改配置的根元素,但我正在努力学习语法.对于给定级别或级别的级别,将日志定向到正确的appender的配置语法是什么?

到目前为止这是配置:

<log4net>
  <appender name="SomeXmlAppender" type="log4net.Appender.RollingFileAppender">
    ...
  </appender>
  <appender name="SomeEventLogAppender" type="log4net.Appender.EventLogAppender">
    ...
  </appender>
  <root>
    <level value="DEBUG" />
    <appender-ref ref="SomeXmlAppender" />
    <appender-ref ref="SomeEventLogAppender" />
  </root>
</log4net>
Run Code Online (Sandbox Code Playgroud)

编辑:谢谢@agileguy.该帖确实包含了我需要的合成语.工作解决方案现在看起来像这样:

<log4net>
  <appender name="SomeXmlAppender" type="log4net.Appender.RollingFileAppender">
    ...
    <evaluator type="log4net.Core.LevelEvaluator">
      <threshold value="INFO"/>
    </evaluator>
    <filter type="log4net.Filter.LevelRangeFilter">
      <levelMin value="INFO" />
      <acceptOnMatch value="true" />
    </filter>
    <filter type="log4net.Filter.DenyAllFilter" />
  </appender>
  <appender name="SomeEventLogAppender" type="log4net.Appender.EventLogAppender">
    ...
    <evaluator type="log4net.Core.LevelEvaluator">
      <threshold value="ERROR"/>
    </evaluator>
    <filter type="log4net.Filter.LevelRangeFilter">
      <levelMin value="ERROR" />
      <acceptOnMatch value="true" />
    </filter>
    <filter type="log4net.Filter.DenyAllFilter" />
  </appender>
  <root>
    <level value="DEBUG" /> …
Run Code Online (Sandbox Code Playgroud)

configuration log4net log4net-configuration

42
推荐指数
2
解决办法
2万
查看次数

将日志写入文件

将日志从log4net写入文件时遇到了一些麻烦.我似乎按照手册中的描述完成所有操作,但这不起作用.这是我的logging.config文件:

<?xml version="1.0" encoding="utf-8" ?>
<configuration>
  <configSections>
    <section name="log4net" type="log4net.Config.Log4NetConfigurationSectionHandler, log4net" />
  </configSections>
  <log4net>
    <appender name="FileAppender" type="log4net.Appender.FileAppender">
      <file value="log.txt" />
      <appendToFile value="true" />
      <lockingModel type="log4net.Appender.FileAppender+MinimalLock" />
      <layout type="log4net.Layout.PatternLayout">
        <conversionPattern value="%date [%thread] %-5level %message%newline" />
      </layout>
    </appender>
  </log4net>
</configuration>
Run Code Online (Sandbox Code Playgroud)

请帮助一个实际工作的配置文件的例子.

.net c# logging log4net log4net-configuration

38
推荐指数
4
解决办法
6万
查看次数

无法让log4net与.net windows服务一起工作

我有一个app.config和一个Windows服务log4net.config.

app.config:

  <configSections>
    <section name="log4net" type="log4net.Config.Log4NetConfigurationSectionHandler, log4net" />
  </configSections>
  <log4net configSource="log4net.config" />
Run Code Online (Sandbox Code Playgroud)

log4net.config:

<log4net>
  <appender name="LogFileAppender" type="log4net.Appender.RollingFileAppender">
    <param name="File" value="D:\Projects\Integration\Interface Module\bin\Logs\MyFirstLogger.log"/>
    <lockingModel type="log4net.Appender.FileAppender+MinimalLock" />
    <appendToFile value="true" />
    <rollingStyle value="Size" />
    <maxSizeRollBackups value="2" />
    <maximumFileSize value="1MB" />
    <staticLogFileName 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" />
  </root>
</log4net>
Run Code Online (Sandbox Code Playgroud)

我也添加了这个AssemblyInfo.cs:

[assembly: log4net.Config.XmlConfigurator(Watch = true)]
Run Code Online (Sandbox Code Playgroud)

在我的一个课程中,我有:

private readonly ILog _log = LogManager.GetLogger(MethodBase.GetCurrentMethod().DeclaringType);
Run Code Online (Sandbox Code Playgroud)

和 …

.net c# logging log4net log4net-configuration

35
推荐指数
5
解决办法
3万
查看次数

为什么我的所有log4net级别都是假的?

我在我的ASP.NET MVC3项目中使用log4net,但所有日志属性,如IsDebugEnabled== false

在我的AssemblyInfo中,我有:

[assembly: XmlConfigurator(Watch = true)]
Run Code Online (Sandbox Code Playgroud)

在我的日志课中,我有

public Log4NetLogger()
{
    log4net.Config.XmlConfigurator.Configure();
    Logger = LogManager.GetLogger(System.Reflection.MethodBase.GetCurrentMethod().DeclaringType);
}
Run Code Online (Sandbox Code Playgroud)

我在Web.Config中的相关配置是:

<?xml version="1.0" encoding="utf-8"?>
<!--
  For more information on how to configure your ASP.NET application, please visit
  http://go.microsoft.com/fwlink/?LinkId=152368
  -->
<configuration>
  <configSections>
    <sectionGroup name="applicationSettings" type="System.Configuration.ApplicationSettingsGroup, System, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
      <section name="log4net" type="log4net.Config.Log4NetConfigurationSectionHandler, log4net" requirePermission="false"/>
       </sectionGroup>
  </configSections>

    <log4net debug="false">
      <appender name="AdoNetAppender" type="log4net.Appender.AdoNetAppender">
        <bufferSize value="100" />
        <connectionType value="System.Data.SqlClient.SqlConnection, System.Data, Version=1.0.3300.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" />
        <connectionString value="{removed}" />
        <commandText value="INSERT INTO Logging ([Date],[Thread],[Level],[Logger],[Message],[Exception]) VALUES (@log_date, @thread, …
Run Code Online (Sandbox Code Playgroud)

c# log4net asp.net-mvc-3 log4net-configuration

30
推荐指数
6
解决办法
3万
查看次数

log4net初始化

我看起来很难复制,但不管它看起来多么基本,都要问下面的内容,让它一劳永逸地清楚!

在使用64位W7上的VS28KSP1上的log4net版本1.2.10.0的全新控制台应用程序中,我有以下代码: -

using log4net;
using log4net.Config;

namespace ConsoleApplication1
{
    class Program
    {
        static readonly ILog _log = LogManager.GetLogger(typeof(Program));
        static void Main(string[] args)
        {
            _log.Info("Ran");
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

在我app.config,我有:

<?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="Program.log" />
      <lockingModel type="log4net.Appender.FileAppender+MinimalLock" />
      <appendToFile value="true" />
      <rollingStyle value="Size" />
      <maxSizeRollBackups value="10" />
      <maximumFileSize value="1MB" />
      <staticLogFileName value="true" />
      <layout type="log4net.Layout.PatternLayout">
        <conversionPattern value="[%username] %date [%thread] %-5level %logger [%property{NDC}] - %message%newline" /> …
Run Code Online (Sandbox Code Playgroud)

.net log4net initialization xmlconfigurator log4net-configuration

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

Log4Net:以2字节语言登录(日文,中文等)

我想使用log4net以2字节语言(中文,日文等)将数据记录到文件中.

如何正确配置log4net来做到这一点?

c# logging log4net log4net-configuration

28
推荐指数
1
解决办法
1万
查看次数

程序集属性中的Log4net配置不会加载配置文件

我的bin目录中有以下文件Log4net.config:

<?xml version="1.0" encoding="utf-8" ?>
<log4net xmlns="urn:log4net">
    <appender name="FileAppender" type="log4net.Appender.FileAppender">
        <param name="file" value="MyLogFile.log"/>
        <param name="appendToFile" value="false"/>
        <layout type="log4net.Layout.PatternLayout">
            <param name="ConversionPattern" value="%date (%logger) [%5level] - %message" />
        </layout>
    </appender>
    <appender name="ConsoleAppender" type="log4net.Appender.ConsoleAppender">
        <layout type="log4net.Layout.PatternLayout">
            <param name="ConversionPattern" value="%date (%logger) [%5level] - %message" />
        </layout>
    </appender>
    <root>
        <level value="DEBUG" />
        <appender-ref ref="FileAppender" />
        <appender-ref ref="ConsoleAppender"/>
    </root>
    <logger name="NHibernate" additivity="false">
        <level value="WARN"/>
    </logger>
</log4net>
Run Code Online (Sandbox Code Playgroud)

以及AssemblyInfo.cs文件中的以下代码:

using System.Reflection;
using System.Runtime.CompilerServices;
using System.Runtime.InteropServices;

[assembly: AssemblyVersion("1.0.0.0")]
[assembly: AssemblyTitle("My Project")]
[assembly: log4net.Config.XmlConfigurator(ConfigFile = "Log4net.config", Watch = true)]
Run Code Online (Sandbox Code Playgroud)

当我运行程序时,我得到以下log4net调试输出: …

log4net log4net-configuration

27
推荐指数
2
解决办法
3万
查看次数