标签: log4net

log4net与Nlog

有人都有经验吗?他们如何相互叠加?

我们计划使用其中一个登录企业应用程序.

参考文献:

log4net的

n日志

编辑:我们没有nlog或log4net的现有依赖项.

log4net nlog

355
推荐指数
12
解决办法
13万
查看次数

如何追踪log4net问题

我一直都在使用log4net,但有一点我从未弄清楚的是如何判断内部发生了什么.例如,我的项目中有一个控制台appender和一个数据库appender.我对数据库和代码做了一些更改,现在数据库appender不再起作用了.我会弄清楚为什么最终,但如果我能看到log4net里面发生了什么,那将会有很大帮助.

log4net是否生成任何类型的输出,我可以查看以尝试确定问题的根源?

.net logging log4net

182
推荐指数
4
解决办法
8万
查看次数

Log4net不写日志文件

我使用Log4net创建了一个简单的场景,但似乎我的appender不起作用,因为消息没有添加到日志文件中.

我将以下内容添加到web.config文件中:

<configSections>
    <section name="log4net" type="log4net.Config.Log4NetConfigurationSectionHandler, log4net" requirePermission="false"/>        
</configSections>

<log4net>
    <appender name="LogFileAppender" type="log4net.Appender.FileAppender">
            <file value="D:\MyData\Desktop\LogFile.txt" />
            <appendToFile value="true" />
            <encoding value="utf-8" />
            <layout type="log4net.Layout.SimpleLayout" />
    </appender>


    <root>
        <level value="INFO" />
        <appender-ref ref="LogFileAppender" />
    </root>
</log4net>
Run Code Online (Sandbox Code Playgroud)

在全局ASAX文件中,我添加了:

ILog logger = LogManager.GetLogger(typeof(MvcApplication));
Run Code Online (Sandbox Code Playgroud)

并在Application_Start方法中:

logger.Info("Starting the application...");
Run Code Online (Sandbox Code Playgroud)

我做错了什么?

.net c# asp.net logging log4net

152
推荐指数
6
解决办法
15万
查看次数

您可以在代码中配置log4net而不是使用配置文件吗?

我理解为什么log4net使用app.config文件来设置日志记录 - 这样您就可以轻松更改信息的记录方式,而无需重新编译代码.但在我的情况下,我不想app.config用我的可执行文件打包文件.我不想修改我的日志记录设置.

有没有办法让我设置登录代码而不是使用app.config

这是我的简单配置文件:

<?xml version="1.0" encoding="utf-8" ?>
<configuration>
  <configSections>
    <section name="log4net" type="log4net.Config.Log4NetConfigurationSectionHandler, log4net" />
  </configSections>
  <log4net>
    <appender name="RollingLogFileAppender" type="log4net.Appender.RollingFileAppender">
      <file value="Logs\EventLog.txt" />
      <appendToFile value="false" />
      <rollingStyle value="Size" />
      <maxSizeRollBackups value="5" />
      <maximumFileSize value="1GB" />
      <layout type="log4net.Layout.PatternLayout">
        <conversionPattern value="%date [%thread] %-5level %logger - %message%newline" />
      </layout>
    </appender>
    <appender name="MemoryAppender" type="log4net.Appender.MemoryAppender">
    </appender>
    <root>
      <level value="Info" />
      <appender-ref ref="RollingLogFileAppender" />
      <appender-ref ref="MemoryAppender" />
    </root>
  </log4net>
</configuration>
Run Code Online (Sandbox Code Playgroud)

编辑:

要完全清楚:我的目标是没有XML文件.甚至不是我变成流的嵌入式资源.我的目标是完全以编程方式定义记录器.只是好奇是否有可能,如果是这样,我可能会找到一个语法示例.

.net c# logging log4net

129
推荐指数
4
解决办法
8万
查看次数

配置Log4net以写入多个文件

我想从同一个进程写入2个不同的日志文件.

使用log4net可以做什么?

我需要为每个日志文件写单独的消息.如何将消息写入特定的appender?

log4net

125
推荐指数
5
解决办法
10万
查看次数

log4net无法正常工作

嘿,我在web.config中有这个配置

<log4net>
    <appender name="LogFileAppender" type="log4net.Appender.FileAppender">
        <param name="File" value="mylog.log" />
        <param name="AppendToFile" value="true" />
        <layout type="log4net.Layout.PatternLayout">
            <param name="Header" value="" />
            <param name="Footer" value="" />
            <param name="ConversionPattern" value="%d [%t] %-5p %m%n" />
        </layout>
    </appender>
    <appender name="ConsoleAppender" type="log4net.Appender.ConsoleAppender" >
        <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 %m%n" />
        </layout>
    </appender>
    <root>
        <level value="DEBUG" />
        <appender-ref ref="LogFileAppender" />
        <appender-ref ref="ConsoleAppender" />
    </root>
</log4net>
Run Code Online (Sandbox Code Playgroud)

但log4net无法正常工作.我的项目编译得很好,我也没有调试错误.我告诉的行log.debug("somemessage")可以正常运行,但我找不到mylog.log文件,所以它在哪里?

c# log4net .net-4.0

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

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滚动每日文件名,文件名中包含日期

我想以文件命名为例:

dd.mm.yyyy.log

log4net怎么可能这样?

c# logging log4net filenames

116
推荐指数
7
解决办法
12万
查看次数

间歇性log4net RollingFileAppender锁定文件问题

我们在开发和生产机器上看到一个间歇性问题,我们的日志文件没有被记录.

使用Visual Studio在开发和调试中运行时,我们在VS输出窗口中收到以下log4net错误消息:

log4net:ERROR [RollingFileAppender] Unable to acquire lock on file C:\folder\file.log.
Run Code Online (Sandbox Code Playgroud)

该进程无法访问文件"C:\ folder\file.log",因为它正由另一个进程使用.

log4net:ERROR XmlConfigurator: Failed to find configuration section 'log4net' in the application's .config file.
Check your .config file for the <log4net> and <configSections> elements.
Run Code Online (Sandbox Code Playgroud)

配置部分应如下所示:

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

我们当前解决此问题的方法是重命名最后一个日志文件.我们当然希望这会失败(由于前面提到的文件锁定),但通常不会.由于aspnet_wp.exe进程的锁定,重命名一次或两次失败.

我们的log4net配置部分如下所示:

<log4net>
  <appender name="RollingLogFileAppender" type="log4net.Appender.RollingFileAppender">
    <file value="C:\folder\file.log"/>
    <appendToFile value="true" />
    <datePattern value="yyyyMMdd" />
    <rollingStyle value="Date" />
    <maximumFileSize value="10MB" />
    <maxSizeRollBackups value="100" />
    <layout type="log4net.Layout.PatternLayout">
      <header value="[Header]&#xA;"/>
      <footer value="[Footer]&#xA;"/>
      <conversionPattern value="%date %-5level %logger ${COMPUTERNAME} %property{UserHostAddress} [%property{SessionID}] …
Run Code Online (Sandbox Code Playgroud)

log4net locking rollingfileappender

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

log4net和ELMAH有什么区别?

有些人使用的是ELMAH而不是log4net.是什么让它变得更好?

我在回答Stack Overflow问题时发现了ELMAH 如何登录C#?

.net c# logging log4net elmah

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