我正在编写一个简单的测试项目来试验log4net,而且我已经立即打了一个墙.无论我在配置文件中执行什么操作,都会初始化我的记录器,并将所有"IsXXXXEnabled"标志设置为false.这是我非常简单的app.config:
<log4netgroup>
<log4net xsi:noNamespaceSchemaLocation="http://csharptest.net/downloads/schema/log4net.xsd"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<appender name="EventLogAppender" type="log4net.Appender.EventLogAppender">
<param name="LogName" value="Application" />
<param name="ApplicationName" value="HelloProgram" />
<threshold value="DEBUG"/>
<layout type="log4net.Layout.PatternLayout">
<conversionPattern value="%logger - %newline%message" />
</layout>
</appender>
<root>
<level value="DEBUG" />
<appender-ref ref="EventLogAppender" />
</root>
<logger name="HelloLogger">
<level value="DEBUG" />
<appender-ref ref="EventLogAppender" />
</logger>
</log4net>
</log4netgroup>
Run Code Online (Sandbox Code Playgroud)
以下是Main中的简单测试:
ILog Log = LogManager.GetLogger("HelloLogger");
if(Log.IsErrorEnabled)
Console.WriteLine("The logger is working!");
else
Console.WriteLine("Nope");
Run Code Online (Sandbox Code Playgroud)
输出是"不".我尝试将阈值和级别值切换为"ALL",但没有任何改变.这看起来很简单,我错过了什么来启用一切?谢谢
我已经编写了3个ASP.net MVC Web应用程序,并且所有这些应用程序都部署在我的ISP的共享主机服务器上.
所有3个应用程序在配置和设置方面都非常相似.第一个应用程序部署到与第二个和第三个不同的服务器.第一个应用程序没有给我任何错误.
第二个和第三个应用程序稍微吐出以下SecurityException :随机:
替代文字http://i46.tinypic.com/24p9pac.jpg
例外文字:
Security Exception
Description: The application attempted to perform an operation not allowed by the security policy. To grant this application the required permission please contact your system administrator or change the application's trust level in the configuration file.
Exception Details: System.Security.SecurityException: Request for the permission of type 'System.Configuration.ConfigurationPermission, System.Configuration, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a' failed.
Source Error:
An unhandled exception was generated during the execution of the current web request. …Run Code Online (Sandbox Code Playgroud) asp.net asp.net-mvc log4net securityexception shared-hosting
我一直试图在我的asp.net Web应用程序中记录log4net,但没有成功或任何明显的错误.我试图使用ADONetAppender appender与以下配置:
<log4net>
<appender name="ADONetAppender" type="log4net.Appender.ADONetAppender">
<bufferSize value="1" />
<connectionType value="System.Data.SqlClient.SqlConnection, System.Data, Version=1.0.3300.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" />
<connectionString value="server=" />
<commandText value="INSERT INTO Log ([Date],[Thread],[Level],[Logger],[Message],[Exception],[Context]) VALUES
(@log_date, @thread, @log_level, @logger, @message, @exception, @context)" />
<parameter>
<parameterName value="@log_date" />
<dbType value="DateTime" />
<layout type="log4net.Layout.RawTimeStampLayout" />
</parameter>
<parameter>
<parameterName value="@thread" />
<dbType value="String" />
<size value="32" />
<layout type="log4net.Layout.PatternLayout">
<conversionPattern value="%t" />
</layout>
</parameter>
<parameter>
<parameterName value="@log_level" />
<dbType value="String" />
<size value="512" />
<layout type="log4net.Layout.PatternLayout">
<conversionPattern value="%p" />
</layout>
</parameter>
<parameter> …Run Code Online (Sandbox Code Playgroud) 我想将log4net记录的所有内容重定向到System.Diagnostics Trace类.我对我应该做的事情的理解是将log4net指向system.diagnostics.traceappender,然后配置system.diagnostics.这是我的web.config中的重要部分:
<log4net>
<appender name="trace" type="log4net.Appender.TraceAppender, log4net">
<immediateFlush value="true" />
<layout type="log4net.Layout.PatternLayout,log4net">
<param name="ConversionPattern"
value="%d{ABSOLUTE} %-5p %c{1}:%L - %m%n" />
</layout>
</appender>
<root>
<priority value="DEBUG"/>
<appender-ref ref="trace"/>
</root>
</log4net>
<system.diagnostics>
<sources>
<source name="Console" switchName="DefaultSwitch">
<listeners>
<add type="System.Diagnostics.DefaultTraceListener" name="Default">
<filter type="" />
</add>
</listeners>
</source>
<source name="Metabase" switchName="MetabaseSwitch">
<listeners>
<add name="MetabaseListener" />
<remove name="Default" />
</listeners>
</source>
<source name="TextFile" switchName="TextFileSwitch">
<listeners>
<add name="TextFileListener" />
<remove name="Default" />
</listeners>
</source>
</sources>
<sharedListeners>
<!--<add name="ConsoleListener" type="XXX.Manufacturing.Utilities.Diagnostics.ColorConsoleTraceListener,XXX.Manufacturing.Utilities" />-->
<add name ="TextFileListener" type="System.Diagnostics.TextWriterTraceListener" initializeData="TextFile.log" /> …Run Code Online (Sandbox Code Playgroud) 我有一个使用log4net的.Net 4.0 Windows服务应用程序.
这是我的log4net配置.
<log4net>
<appender name="ConsoleAppender" type="log4net.Appender.ConsoleAppender">
<layout type="log4net.Layout.PatternLayout">
<conversionPattern value="%date [%thread] %-5level %logger [%property{Context}] - %message%newline" />
</layout>
</appender>
<appender name="ColorConsoleAppender" type="log4net.Appender.ColoredConsoleAppender">
<mapping>
<level value="ERROR" />
<foreColor value="Red, HighIntensity" />
</mapping>
<mapping>
<level value="FATAL" />
<foreColor value="Red, HighIntensity" />
</mapping>
<mapping>
<level value="WARN" />
<foreColor value="Blue, HighIntensity" />
</mapping>
<mapping>
<level value="INFO" />
<forecolor value="White, HighIntensity" />
</mapping>
<mapping>
<level value="DEBUG" />
<forecolor value="Green, HighIntensity" />
</mapping>
<layout type="log4net.Layout.PatternLayout">
<conversionPattern value="%date [%thread] %-5level %logger [%property{Context}] - %message%newline" /> …Run Code Online (Sandbox Code Playgroud)