为什么IsInfoEnabled为false?log4net网络
【腾讯云】亏本大甩卖,服务器4核16G 1年370元(带宽12M,系统盘120GB SSD盘,月流量2000GB)!!!!!!
云产品 配置 价格
服务器 1核2G,带宽5M,系统盘50GB SSD盘,月流量500GB 38元/年
MySQL 1核1G 19元/年
服务器 16核32G,带宽18M,系统盘250GB SSD盘,月流量5000GB 1197元/年
点我进入腾讯云,查看更多详情

I have log4net implemented in a Visual Studio 2010 VB.NET Windows service. It used to work, but not anymore.

I have a sub RunTasks that gets started by the service every minute. When I debug this procedure using a console project in the same solution, the logging works. However when I install the service and run it, and debug it using VS by attaching to the process, I found out that IsInfoEnabled, IsDebugEnabled, IsErrorEnabled etc. are all set to false, and I guess that's why the logging is not working, although RunTasks is executed by the service.

I have the following class, if I understand things right the XMLConfigurator is started before GetLogger.

Imports System.Reflection

<Assembly: log4net.Config.XMLConfigurator(ConfigFile:="LogConfig.xml", Watch:=True)> 

Public NotInheritable Class Logging

    Private Shared _LogName As String
    Private Shared _ilog As log4net.ILog

    Private Sub New()
    End Sub

    Public Shared ReadOnly Property ILog() As log4net.ILog
        Get
            If _ilog Is Nothing Then
                _ilog = log4net.LogManager.GetLogger(LogName)
            End If

            Return _ilog
        End Get
    End Property

    Private Shared ReadOnly Property LogName() As String
        Get
            If _LogName = "" Then

                'If GetType(MySettings).GetProperty("LogName") IsNot Nothing Then
                '    _LogName = GetType(MySettings).GetProperty("LogName").GetValue(MySettings.Default, Nothing)
                'End If
                If _LogName = "" Then _LogName = "DefaultLogger"
            End If

            Return _LogName
        End Get
    End Property

End Class

The logging itself looks like this:

ILog.Info("Starting RunTasks ... ")

And here is my LogConfig.xml

<?xml version="1.0" encoding="utf-8" ?>
<configuration>
  <log4net>
    <appender name="textfileAppender" type="log4net.Appender.RollingFileAppender">
      <file value="myLogFile.log" />
      <appendToFile value="true" />
      <rollingStyle value="Size" />
      <maxSizeRollBackups value="3" />
      <maximumFileSize value="100KB" />
      <staticLogFileName value="true" />
      <layout type="log4net.Layout.PatternLayout">
        <conversionPattern value="%date{yyyy-MM-dd HH:mm:ss} %-5level - %message%newline" />
      </layout>
    </appender>
    <logger name="DefaultLogger">
      <level value="ALL" />
      <appender-ref ref="textfileAppender" />
    </logger>
  </log4net>
</configuration>

#0

I found the answer myself, I had to move the following line of code:

<Assembly: log4net.Config.XMLConfigurator(ConfigFile:="LogConfig.xml", Watch:=True)> 

... (see first code block above) to the AssemblyInfo.vb of the solutions startup project. XMLConfigurator has to be executed before GetLogger is.

推荐文章

如何构造/设计Web应用程序最大限度地提高AJAX/内联编辑的可重用性

如何构造/设计Web应用程序最大限度地提高AJAX/内联编辑的可重用性

推荐文章

Macintosh XCode共享

Macintosh XCode共享

推荐文章

在C的onnit/OnLoad页上添加/删除会话变量#

在C的onnit/OnLoad页上添加/删除会话变量#

推荐文章

单个静态HTML文件:如何高效地为其提供服务?

单个静态HTML文件:如何高效地为其提供服务?

推荐文章

卸载GlassFish应用程序服务器

卸载GlassFish应用程序服务器

推荐文章

如何进行.htaccess嵌套重定向?

如何进行.htaccess嵌套重定向?

推荐文章

JScript帮助?这个JavaScript代码的主要用途是什么?

JScript帮助?这个JavaScript代码的主要用途是什么?

推荐文章

qt移动应用中如何设置报警

qt移动应用中如何设置报警

推荐文章

在javascript中将某些内容附加到div,而不使用pre标记为文本创建换行符

在javascript中将某些内容附加到div,而不使用pre标记为文本创建换行符

推荐文章

试图通过重新打开的套接字发送时的ObjectDisposeException

试图通过重新打开的套接字发送时的ObjectDisposeException

推荐文章

在/proc文件系统中找不到“fdinfo”

在/proc文件系统中找不到“fdinfo”

推荐文章

如何使JUnit4记录所有非hrown异常?

如何使JUnit4记录所有非hrown异常?

推荐文章

Javascript获取图像高度在除firefox之外的所有浏览器中都有效…请帮助?

Javascript获取图像高度在除firefox之外的所有浏览器中都有效…请帮助?

推荐文章

PHP搜索和替换查询

PHP搜索和替换查询

推荐文章

如何使用“RewriteRule^(.*)$”通过.htaccess获取文件目录?id=$1[L,QSA]`?

如何使用“RewriteRule^(.*)$”通过.htaccess获取文件目录?id=$1[L,QSA]`?

推荐文章

升级xcode时应用程序崩溃

升级xcode时应用程序崩溃