标签: log4net-configuration

如何使用stringToMatch过滤器将消息与log4net中的换行符匹配?

我在配置a StringMatchFilter以匹配消息中的字符串与换行符时遇到问题.我想跳过一些消息,我添加了一个这样的过滤器,它可以工作.

<filter type="log4net.Filter.StringMatchFilter">
  <param name="AcceptOnMatch" value="false" />
  <stringToMatch value="Unexpected exception in SocketThreadWorker" />
</filter>
Run Code Online (Sandbox Code Playgroud)

但是,如果我stringToMatch将消息的第二行更改为"远程主机强制关闭的现有连接",则过滤器不起作用.是因为消息中的换行符还是我在这里做错了什么?

典型的消息可能如下所示:

------示例消息----------------------------

2011-05-04 16:22:24,078 [Client (connected from "127.0.0.1:4076" at 16:22)] ERROR - Unexpected exception in SocketThreadWorker System.Net.Sockets.SocketException:
An existing connection was forcibly closed by the remote host at System.Net.Sockets.Socket.EndReceive(IAsyncResult asyncResult)
Run Code Online (Sandbox Code Playgroud)

------结束示例消息---------------------------

"SocketThreadWorker中出现意外异常"位于消息的第一行,"强制关闭现有连接"位于第二行.

编辑

appender看起来像这样:

<appender name="SmtpAppender" type="log4net.Appender.SmtpAppender">
  <filter type="log4net.Filter.StringMatchFilter">
    <param name="AcceptOnMatch" value="false" /> 
    <stringToMatch value="An existing connection was forcibly closed by the remote host" />        
  </filter>
  <to value="..." />
  <from value="..." …
Run Code Online (Sandbox Code Playgroud)

log4net log4net-configuration

10
推荐指数
1
解决办法
1725
查看次数

使用Castle.Facilities.Logging和log4net进行日志记录

我正在努力让Castle Windsor的log4net集成工作.我用类型的公共属性编写了我的类,ILogger并在我的app.config中进行了配置,如下所示.

<configuration>
  <configsections>
    <section name="castle" type="Castle.Windsor.Configuration.AppDomain.CastleSectionHandler, Castle.Windsor" />
    <section name="log4net" type="log4net.Config.Log4NetConfigurationSectionHandler, log4net" />
  </configsections>

  <castle>
    <facilities>
      <facility id="logging" type="Castle.Facilities.Logging.LoggingFacility, Castle.Facilities.Logging" loggingApi="log4net" />
    </facilities>
    <components>
      <component id="form1" type="WinFormsActiveRecordSample.Form1, WinFormsActiveRecordSample" />
    </components>
  </castle>
  <log4net>
    <root>
      <level value="ALL" />
      <appender-ref ref="FileAppender" />
    </root>
    <appender name="FileAppender" type="log4net.Appender.FileAppender">
      <file value="main.log" />
      <appendToFile value="true" />
      <layout type="log4net.Layout.PatternLayout">
        <conversionPattern value="%date{dd.MM.yy HH:mm:ss} %-5level %logger - %message%newline" />
      </layout>
    </appender>
  </log4net>
</configuration>
Run Code Online (Sandbox Code Playgroud)

在我看来,这应该是有效的,但事实并非如此.当我loggingApi="console"正确设置日志时.当我将其更改为log4net时,它什么也没做.log4net配置来自块正在运行的另一个项目.我该怎么做才能使用日志文件?必须有特殊的log4net配置吗?

谢谢你的任何提示

鲍里斯

logging log4net castle-windsor log4net-configuration

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

log4Net EventlogAppender不适用于Asp.Net 2.0 WebSite?

我为Asp.Net 2.0配置了log4Net EventLogAppender.但它不会记录任何内容.我在我的Web.Config中有以下内容.

<log4net>
    <appender name="EventLogAppender" type="log4net.Appender.EventLogAppender">
      <param name="LogName" value="Test Log" />
      <param name="ApplicationName" value="Test-Web" />
      <layout type="log4net.Layout.PatternLayout">
        <conversionPattern value="%date [%thread] %-5level %logger [%property{NDC}] - %message%newline" />
      </layout>
    </appender>
    <root>
      <priority value="ERROR"/>
      <appender-ref ref="EventLogAppender"/>
    </root>
    <logger name="NHibernate">
      <level value="ERROR" />
      <appender-ref ref="EventLogAppender" />
    </logger>
  </log4net>
Run Code Online (Sandbox Code Playgroud)

我已经创建了测试日志事件日志,并且AspNet用户对事件日志注册表项具有权限.我还在Global.asax Application_Start中配置了log4Net.

log4net.Config.XmlConfigurator.Configure();
Run Code Online (Sandbox Code Playgroud)

更新:我打开了log4net内部调试,发现跟踪中出现以下错误.

log4net:ERROR XmlHierarchyConfigurator: Could not create Appender [EventLogAppender] of type [log4net.Appender.EventLogAppender]. Reported error follows.
System.Security.SecurityException: The source was not found, but some or all event logs could not be searched.  Inaccessible …
Run Code Online (Sandbox Code Playgroud)

asp.net events log4net .net-2.0 log4net-configuration

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

使用其他log4net日志记录级别比通常的

我意识到有更多的级别,调试,信息,警告,错误和致命,它们列在log4net.Core.Level课堂上.

但我怎么能用呢?我的意思是,在ILog界面中你有使用常用方法的方法,但如果你想使用"精细"或"紧急"等怎么办?

干杯.

.net log4net log4net-configuration

9
推荐指数
2
解决办法
4988
查看次数

Log4Net Http Appender存在吗?

在log4net中是否有一个appender可以允许winform客户端在不使用共享的情况下读取另一台服务器上的log4net日志?我的应用程序作为Web服务托管.我正在寻找一个HTTP appender或类似的东西.

log4net log4net-configuration

9
推荐指数
2
解决办法
3781
查看次数

使用自定义主题配置或扩展log4net SmtpAppender

如何为生成的电子邮件主题指定布局和conversionPattern?

BufferSize需要小于或等于1,因此不会发生缓冲.

log4net log4net-configuration

9
推荐指数
1
解决办法
7781
查看次数

Log4Net smtp appender仅在出现完整日志错误时发送电子邮件(调试和信息和错误).仅在申请结束时

我正在尝试在log4net.config文件中配置smtp appender.问题是我已经浏览了整个互联网,并且无法找到如何在包含所有其他日志信息(如info,debug,error,fatal)发生错误时发送电子邮件.仅在应用程序结束时(不是每次发生ERROR时).

因此,我只希望在以下情况下收到此电子邮件:应用程序结束+包含所有日志信息(DEBUG,INFO,ERROR,FATAL)+仅在出现ERROR时.

详细说明这是因为我在c sharp中处理异常的方式,在整个地方进行多级处理,因此如果发生错误,无论多少次我只想接收一封电子邮件.此外,我不想使用多个日志,而只是使用root中的一个.

谢谢.

.net c# log4net smtp log4net-configuration

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

如何将log4net配置写入appsettings.json?

我已经实现log4net.NET core 2.0,登录到文本文件.因为log4net有一个配置文件,它XML configuration在其中.所以,我创建了一个单独的文件log4net.config来设置它的配置,它工作正常.但我想将其配置设置为appsettings.json.是否可以将log4net配置写入appsettings.json.

<appSettings>
    <add key="IsLog" value="True" />
    <add key="MaxThreads" value="3" />
  </appSettings>
  <log4net debug="false">
    <root>
      <level value="ALL" />
      <appender-ref ref="RollingLogFileAppender" />
    </root>
 <appender name="RollingLogFileAppender" type="log4net.Appender.RollingFileAppender">
    <file value="./logs/logfile.txt" />
    <appendToFile value="false" />
    <rollingStyle value="Size" />
    <maxSizeRollBackups value="-1" />
    <maximumFileSize value="50GB" />
    <layout type="log4net.Layout.PatternLayout">
        <conversionPattern value="%date [%thread] %-5level %logger - %message%newline" />
    </layout>
</appender>   
  </log4net>
Run Code Online (Sandbox Code Playgroud)

这是我的XML配置.

我发现这个问题,其所提及log4net don't support Json projects.是否可以将其配置写入appsettings.json.

log4net log4net-configuration asp.net-core-2.0

9
推荐指数
2
解决办法
2185
查看次数

Web.Config中的Log4Net部分生成错误

所以我试图在我的Web .NET 4.0应用程序中设置Log4Net.我已将正确的.dll添加到我的项目中,并将以下内容作为启动器添加到我的Web.Config文件中:

<configSections>
<section name="log4net" type="log4net.Config.Log4NetConfigurationSectionHandler, log4net"/>
<root>
  <level value="DEBUG" />
  <appender-ref ref="RollingLogFileAppender" />
</root>
</configSections>
 <log4net debug="true">
 <appender name="RollingLogFileAppender" type="log4net.Appender.RollingFileAppender">
  <file value="C:\\TestProj\\TestLog.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>
Run Code Online (Sandbox Code Playgroud)

但是,如果我将"log4net"部分附加到Web.Config,我将收到错误消息

无法在Web服务器上启动调试.有关常见配置问题请参阅帮助.....

确保服务器正常运行.验证web.config中没有语法错误........

注意 我可以删除本节的所有内部结构,只留下声明:

<log4net></log4net>
Run Code Online (Sandbox Code Playgroud)

我仍然会得到同样的错误.

有人可以给我一些关于如何追踪这个错误的指示吗?

log4net c#-4.0 log4net-configuration

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

如何使用Log4Net实用程序使用c#登录数据库

目前在我的项目中,log4net用于将所有异常,信息,警告等记录到文本文件中,但现在我想要的是将所有这些细节记录到数据库表而不是文件中.
请帮我这样做.

提前谢谢了.

组态:

<log4net>
  <root>
    <level value="DEBUG" />
    <appender-ref ref="ADONetAppender" />
  </root>
  <appender name="ADONetAppender" type="log4net.Appender.ADONetAppender">
    <bufferSize value="100" />
    <connectionType value="System.Data.SqlClient.SqlConnection, System.Data, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" />
    <connectionString value="server=xxxx; uid=xxxx; pwd=xxxx; database=xxxx" />
    <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">
        <conversionPattern value="%level"/>
      </layout>
    </parameter>
    <parameter> …
Run Code Online (Sandbox Code Playgroud)

c# log4net log4net-configuration

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