我创建了一个Web服务项目,它使用Log4Net登录到事件查看器,也可以选择登录.log文件。一切都在我的机器上运行良好,当我尝试将其部署在另一台机器上时,它甚至无法登录到文本文件或事件查看器。事实上,它甚至没有写入文本文件,这让我觉得它无法找到log4net.dll或其他东西吗?
我在global.asax中点击下面的注释行时也收到错误消息:
log4net:错误XmlConfigurator:找不到配置部分' log4net'在应用程序的.config文件中。检查.config文件中的和元素。配置部分应如下所示:
部分名称=" log4net"类型=" log4net.Config.Log4NetConfigurationSectionHandler,log4net的" /
我很难过,我不知道为什么这不起作用,帮助!
从以下代码编译的exe编译器,将源添加到Windows中的事件日志,就像我说的,在我的机器上工作正常:
Option Explicit On
Option Strict On
Imports System
Imports System.Diagnostics
Imports System.Threading
Module Module1
Sub Main()
If Not EventLog.SourceExists("LendingService") Then
EventLog.CreateEventSource("LendingService", "Application")
Console.WriteLine("Creating Event Source: LendingService")
Else
Console.WriteLine("LendingService events already defined to this system.")
End If
End Sub
结束模块
的Web.config:
<?xml version="1.0"?>
<configuration>
<appSettings>
<add key="ACEConfigFileFullPath" value="C:\somepath\Bin\ACEFile.xml" />
<add key="ILConfigFileFullPath" value="C:\somepath\Bin\IL.xml"/>
<add key="log4net.Config" value="log4net.config"/>
<add key="log4net.Config.Watch" value="True"/>
</appSettings>
<connectionStrings/>
<system.web>
<!--
Visual Basic options:
Set strict="true" to disallow all data type conversions
where data loss can occur.
Set explicit="true" to force declaration of all variables.
-->
<compilation debug="true" strict="false" explicit="true" targetFramework="4.0"/>
<!--
The <authentication> section enables configuration
of the security authentication mode used by
ASP.NET to identify an incoming user.
-->
<authentication mode="Windows"/>
<!--
The <customErrors> section enables configuration
of what to do if/when an unhandled error occurs
during the execution of a request. Specifically,
it enables developers to configure html error pages
to be displayed in place of a error stack trace.
<customErrors mode="RemoteOnly" defaultRedirect="GenericErrorPage.htm">
<error statusCode="403" redirect="NoAccess.htm" />
<error statusCode="404" redirect="FileNotFound.htm" />
</customErrors>
-->
<pages controlRenderingCompatibilityVersion="3.5" clientIDMode="AutoID">
<namespaces>
<clear/>
<add namespace="System"/>
<add namespace="System.Collections"/>
<add namespace="System.Collections.Generic"/>
<add namespace="System.Collections.Specialized"/>
<add namespace="System.Configuration"/>
<add namespace="System.Text"/>
<add namespace="System.Text.RegularExpressions"/>
<add namespace="System.Linq"/>
<add namespace="System.Xml.Linq"/>
<add namespace="System.Web"/>
<add namespace="System.Web.Caching"/>
<add namespace="System.Web.SessionState"/>
<add namespace="System.Web.Security"/>
<add namespace="System.Web.Profile"/>
<add namespace="System.Web.UI"/>
<add namespace="System.Web.UI.WebControls"/>
<add namespace="System.Web.UI.WebControls.WebParts"/>
<add namespace="System.Web.UI.HtmlControls"/>
</namespaces>
</pages>
<identity impersonate="true" />
</system.web>
</configuration>
log4net.config: &LT; / configSections&GT; - &GT;是的它仍然适用于我的评论。
<appender name="EventLogAppender" type="log4net.Appender.EventLogAppender">
<param name="ApplicationName" value="Lending Service" />
<layout type="log4net.Layout.PatternLayout">
<conversionPattern value="%date [%thread] %-5level %logger [%property{NDC}] - %message %newline %exception" />
</layout>
<filter type="log4net.Filter.LevelRangeFilter">
<levelMin value="INFO"/>
<levelMax value="FATAL"/>
</filter>
</appender>
<appender name="RollingFileAppender" type="log4net.Appender.RollingFileAppender">
<threshold value="FATAL"/>
<file value="webLog.log"/>
<appendToFile value="true"/>
<rollingStyle value="Size"/>
<maxSizeRollBackups value="5"/>
<maximumFileSize value="10MB"/>
<staticLogFileName value="true"/>
<layout type="log4net.Layout.PatternLayout">
<conversionPattern value="%date [%thread] %level %logger - %message%newline%exception"/>
</layout>
</appender>
<root>
</root>
<logger name="LendingService.Global_asax">
<appender-ref ref="RollingFileAppender"/>
<appender-ref ref="EventLogAppender" />
</logger>
<logger name="LendingService.LendingService">
<appender-ref ref="RollingFileAppender"/>
<appender-ref ref="EventLogAppender" />
</logger>
</log4net>
<startup>
<supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.0"/>
</startup>
</configuration>
AssemblyInfo.vb中:
Imports System
Imports System.Reflection
Imports System.Runtime.InteropServices
<Assembly: log4net.Config.XmlConfigurator(ConfigFile:="log4net.config", Watch:=True)>
的Global.asax:
Imports System.Web.SessionState
Imports IntelliLenderBUClasses
Public Class Global_asax
Inherits System.Web.HttpApplication
'Public objApplicant As New IntelliLenderBUClasses.ApplicantBU
Private Shared ReadOnly log As log4net.ILog = log4net.LogManager.GetLogger(System.Reflection.MethodBase.GetCurrentMethod().DeclaringType)
Sub Application_Start(ByVal sender As Object, ByVal e As EventArgs)
' Fires when the application is started
'ACE
Dim sACEPath As String
sACEPath = System.Configuration.ConfigurationManager.AppSettings("ACEConfigFileFullPath")
AceClientNet.BaseConfig.InitializeBU(sACEPath)
'IL
Dim sILPath As String
sILPath = System.Configuration.ConfigurationManager.AppSettings("ILConfigFileFullPath")
IntelliLenderBUClasses.BUBaseConfig.InitializeBU(sILPath)
'LOGGING
log4net.Config.XmlConfigurator.Configure() 'Error message happening here
log.Info("LendingService Application Started")
End Sub
Sub Session_Start(ByVal sender As Object, ByVal e As EventArgs)
' Fires when the session is started
End Sub
Sub Application_BeginRequest(ByVal sender As Object, ByVal e As EventArgs)
' Fires at the beginning of each request
End Sub
Sub Application_AuthenticateRequest(ByVal sender As Object, ByVal e As EventArgs)
' Fires upon attempting to authenticate the use
End Sub
Sub Application_Error(ByVal sender As Object, ByVal e As EventArgs)
' Fires when an error occurs
Dim sendString As String = sender.ToString
log.Error("LendingService Application Error: " & Server.GetLastError.Message)
End Sub
Sub Session_End(ByVal sender As Object, ByVal e As EventArgs)
' Fires when the session ends
End Sub
Sub Application_End(ByVal sender As Object, ByVal e As EventArgs)
' Fires when the application ends
log.Info("LendingService Application Ending")
End Sub
End Class
答案 0 :(得分:0)
您正在app.config文件中寻找配置。要更改此设置,您可以使用:
// Configure log4net using the .log4net file
[assembly: log4net.Config.XmlConfigurator(ConfigFileExtension="log4net",Watch=true)]
// This will cause log4net to look for a configuration file
// called TestApp.exe.log4net in the application base
// directory (i.e. the directory containing TestApp.exe)
// The config file will be watched for changes.
或
log4net.Config.XmlConfigurator(ConfigFileExtension="log4net",Watch=true)]
作为参考:
// Configure log4net using the .config file
[assembly: log4net.Config.XmlConfigurator(Watch=true)]
// This will cause log4net to look for a configuration file
// called TestApp.exe.config in the application base
// directory (i.e. the directory containing TestApp.exe)
// The config file will be watched for changes.