What am I missing with log4net - No log file created

吃可爱长大的小学妹 提交于 2019-12-23 19:27:31

问题


I am trying to use log4net in a VB.NET app for some unknown reason it's not creating the log file.

Here is my app.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="c:\log-file.txt" />
      <appendToFile value="true" />
      <layout type="log4net.Layout.PatternLayout">
        <conversionPattern value="%date [%thread] %-5level %logger [%property{NDC}] - %message%newline" />
      </layout>
    </appender>
    <root>
      <level value="ALL" />
      <appender-ref ref="FileAppender" />
    </root>

  </log4net>
</configuration>

Here is the app code

Imports log4net
Public Class Form1
    Dim log As ILog
    Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
        log.Error("test")
    End Sub

    Private Sub Form1_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
        log4net.Config.XmlConfigurator.Configure()
        log = log4net.LogManager.GetLogger("TestThings")
    End Sub
End Class

"TestThings" is the name of the VS project. What am I missing?

Edit ~ I am logged in as admin and I am using the most recent log4net.dll


回答1:


try this:

change

< appender name="FileAppender" type="log4net.Appender.FileAppender" >

to

< appender name="FileAppender" type="log4net.Appender.FileAppender, log4net" >

add log4net also to

< layout type="log4net.Layout.PatternLayout" >



回答2:


Try this change in the config for a rolling file appender

<log4net>
    <appender name="FileAppender" type="log4net.Appender.RollingFileAppender">
      <file value="log\web.app.log" />
      <filter type="log4net.Filter.LevelRangeFilter">
        <levelMin value="DEBUG" />
        <acceptOnMatch value="true" />
      </filter>
      <threshold value="DEBUG" />
      <appendToFile value="true" />
      <rollingStyle value="Date" />
      <datePattern value=".yyyyMMdd.lo\g" />
      <maximumFileSize value="5MB" />
      <maxSizeRollBackups value="-1" />
      <countDirection value="1" />
      <layout type="log4net.Layout.PatternLayout">
        <conversionPattern value="%date [%thread] %-5level %logger [%property{NDC}] - %message%newline" />
      </layout>
    </appender>
    <root>
      <level value="ALL" />
      <appender-ref ref="FileAppender" />
    </root>
    <logger name="webapplogger">
      <level value="debug" />
      <appender-ref ref="FileAppender" />
    </logger>
  </log4net>

And in your code (form load or webpage load or IOC) intialization, call

log4net.Config.XmlConfigurator.Configure()
        log = log4net.LogManager.GetLogger("webapplogger")


来源:https://stackoverflow.com/questions/2620056/what-am-i-missing-with-log4net-no-log-file-created

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!