无法让Log4Net在我的ASP.NET网站上工作:(
真的很简单的问题 - >我似乎无法从我的ASP.NET应用程序中的Log4Net中获取任何数据我有一个简单的ASP.NET网站,该网站引用类库。在这个类库,我有叫记录器的一些线路。无法让Log4Net在我的ASP.NET网站上工作:(
我想在我的Visual Studio 2008中调试输出窗口读取log4net的输出数据。
这里是我的代码和我的配置...
//Class Library project
//File: Foo.cs
public class FooService
{
private static readonly ILog log = LogManager.GetLogger(typeof(FooService));
public FooService()
{
// NOTE: To play with my L4N settings, I'll call Debug once, then Info once.
log.Info("Starting Constructor");
// ... snip ...
log.Debug("Leaving Constructor");
}
}
// ASP.NET Website project
// File: global.asax
void Application_Start(object sender, EventArgs eventArgs)
{
log4net.Config.XmlConfigurator.Configure();
}
// File: Whatever.aspx.cs
// A delegate method (when a user clicks a button) creates the FooService() instance.
// File: web.config
<configSections>
<section name="log4net" type="log4net.Config.Log4NetConfigurationSectionHandler" requirePermission="false" />
// ....
</configSections>
<log4net>
<appender name="ColoredConsoleAppender" type="log4net.Appender.ColoredConsoleAppender">
<mapping>
<level value="ERROR" />
<foreColor value="White" />
<backColor value="Red, HighIntensity" />
</mapping>
<mapping>
<level value="DEBUG" />
<backColor value="Green" />
</mapping>
<layout type="log4net.Layout.PatternLayout">
<conversionPattern value="%date [%thread] %-5level %logger [%property{NDC}] - %message%newline" />
</layout>
</appender>
<appender name="ConsoleAppender" type="log4net.Appender.ConsoleAppender">
<layout type="log4net.Layout.PatternLayout" value="%date [%thread] %-5level %logger - %message%newline" />
</appender>
<appender name="OutputDebugStringAppender" type="log4net.Appender.OutputDebugStringAppender">
<mapping>
<level value="ERROR" />
<foreColor value="White" />
<backColor value="Red, HighIntensity" />
</mapping>
<mapping>
<level value="DEBUG" />
<backColor value="Blue" />
</mapping>
<layout type="log4net.Layout.PatternLayout">
<conversionPattern value="%date [%thread] %-5level %logger [%property{NDC}] - %message%newline" />
</layout>
</appender>
<appender name="RollingLogFileAppender" type="log4net.Appender.RollingFileAppender">
<file value="App_Data\logging\log-append.txt"/>
</appender>
<!-- Setup the root category, add the appenders and set the default level -->
<root>
<level value="ALL" />
<appender-ref ref="OutputDebugStringAppender" />
<appender-ref ref="ConsoleAppender" />
<appender-ref ref="ColoredConsoleAppender" />
</root>
<!-- Specify the level for some specific categories -->
<logger name="DotNetOpenAuth">
<level value="ALL" />
</logger>
</log4net>
个
干杯的任何帮助或建议...
编辑:添加的RollingLogFileAppender。
我有这个相同的问题,我认为它看着错误的web.config或东西。我最终从web.config中分离出了log4net.config,并为其指定了\ inetpub \ Logs \ log4net.config,并且一切正常。
UDPATED ON REQUEST:从稍微复杂的版本编辑。
<?xml version="1.0" encoding="utf-8"?>
<log4net>
<appender name="TraceAppender" type="log4net.Appender.TraceAppender">
<layout type="log4net.Layout.PatternLayout">
<conversionPattern value="%date [%thread] %-5level (%logger:%line) - %message%newline" />
</layout>
</appender>\
<root>
<!--ALL, DEBUG, INFO, WARN, ERROR, FATAL, OFF-->
<level value="ALL" />
<appender-ref ref="TraceAppender" />
</root>
</log4net>
,它是在代码配置如下:
var logpath = WebConfigurationManager.AppSettings["LogConfigPath"] ?? @"\Inetpub\Logs\log4net.config";
var finfo = new System.IO.FileInfo (logpath);
XmlConfigurator.Configure(finfo);
花花公子 - 没有ü最终记录到visual studio(调试器)OUTPUT窗口?或到一个文件? – 2009-08-10 10:09:12
是的,我使用TraceAppender去到OutputDebugString工具,我在VS或http://technet.microsoft.com/en-us/sysinternals/bb896647.aspx – kenny 2009-08-10 17:37:26
哇。该sysinternals应用程序是真棒:)我爱那里的东西,这里是另一个kew的东西:)请你详细阐述详细(例如,发布您的.config文件log4net设置的屏幕截图),请吗? – 2009-08-11 10:03:32
ASP.Net对的文件系统访问使用限制,所以尽量的App_Data下明确地指向目录(是被允许) 这里我的工作示例:
<log4net>
<appender name="FileAppender" type="log4net.Appender.FileAppender">
<file value="App_Data\logging\log-file.txt"/>
或者侧翻
<appender name="RollingLogFileAppender" type="log4net.Appender.RollingFileAppender">
<file value="App_Data\logging\log-append.txt"/>
heh - 伙计。我从来没有说过我使用的文件系统:)再看看..... – 2009-08-10 09:46:39
只要尝试这个工作示例,在它之后,你可以单独不工作的配置从未调优的安全。 – Dewfy 2009-08-10 09:55:57
好的..我会给这个去...嗯。 OUTPUT窗口中出现一些错误... og4net:ERROR XmlHierarchyConfigurator:找不到名为[RollingFileAppender]的附加程序。 log4net:错误XmlHierarchyConfigurator:未找到名为[RollingFileAppender]的附加程序。 log4net的:ERROR XmlHierarchyConfigurator:找不到属性[映射]设置在[log4net.Appender.OutputDebugStringAppender]对象 log4net的:ERROR XmlHierarchyConfigurator:找不到属性[映射]设置在[log4net.Appender.OutputDebugStringAppender] – 2009-08-10 10:14:05
有至少2个可能出现的问题:
- 被指定的地址文件的方式,尽量使用绝对代替路径。
- 进行调用的进程需要修改文件的权限。检查写入日志文件的用户帐户是否有权这样做。
调试它我会创建和清空目录,给每个人完全控制,配置为登录到该目录。然后测试它,看它是否有效,然后逐渐将安全性收紧至可接受的水平。
好的,找到答案。我需要使用TraceAppender。
应用程序配置文件 可用于控制实际使用哪些收听者 。有关配置跟踪 系统的详细信息,请参阅MSDN 文档中的跟踪类 。
的事件被使用 System.Diagnostics.Trace.Write(字符串,字符串) 方法写入。事件的记录器名称为 ,作为类别 名称的值传递给Write方法。
这里是我的配置文件中的数据...
<log4net>
<appender name="TraceAppender" type="log4net.Appender.TraceAppender">
<layout type="log4net.Layout.PatternLayout">
<conversionPattern value="%date [%thread] %-5level %logger [%property{NDC}] - %message%newline" />
</layout>
</appender>
<!-- Setup the root category, add the appenders and set the default level -->
<root>
<level value="ALL" />
<appender-ref ref="TraceAppender" />
</root>
</log4net>
+ 1-正如你所说的那样有效! – RichardOD 2009-08-11 07:30:20
我添加以下行Global.asax文件,和它的作品.. !! log4net.Config.XmlConfigurator.Configure();
呃......我已经在我的开场白中列出了。这就是说,我已经放弃了使用Log4Net,现在我正在使用NLog ..它是SOOOO更好的IMO :)它总是有效的(加上它更新,并且还在开发中)。 – 2010-08-07 03:37:01
为什么在Web应用程序中使用ColoredConsoleAppender? – RichardOD 2009-08-10 09:47:41
因为我希望console.out被重定向到这个奇怪的调试器输出窗口.... – 2009-08-10 10:15:34