Tag: log4net configuration

从外部配置文件设置的log4net不起作用

我对log4net有一个奇怪的问题。 在ASP.NET应用程序中,我想在外部配置log4net,因此我有一个单独的log4net.config文件,我在属于我的Web应用程序的AssemblyInfo.cs文件中使用此行连接到我的Web应用程序: [assembly: log4net.Config.XmlConfigurator(ConfigFile = “Log4Net.config”, Watch = true)] 现在,如果我以这样的常规方式实例化log4net logger类: public class MyClass { private static readonly ILog _logger = log4net.LogManager.GetLogger(typeof(MyClass)); …. 然后这工作,并且日志记录正常工作。 但是,我将日志代码包装在LogManager类中,该类是单独程序集(Infrastructure)的一部分,并在多个项目中重用。 它有一个GetLogger,如下所示: public static class LogManager { public static ILog GetLogger() { var stack = new StackTrace(); var frame = stack.GetFrame(1); return new log4net.LogManager.GetLogger(frame.GetMethod().DeclaringType); } } 所以我可以在我的asp.net代码中使用它: public class MyClass { […]

添加log4net配置时出现exception

我在App.cs文件的第一行代码中遇到错误(正在创建一个只读变量)。 我得到的错误是: PresentationFramework.dll中出现类型’System.TypeInitializationException’的第一次机会exceptionPresentationFramework.dll中出现未处理的类型’System.TypeInitializationException’exception附加信息:’System.Windows.Application’的类型初始值设定项引发exception。 这是我在VS中获得的消息弹出窗口: PresentationFramework.dll中出现未处理的“System.TypeInitializationException”类型exception 附加信息:’System.Windows.Application’的类型初始值设定项引发了exception。 我所做的唯一更改是将其添加到我的app.config :

为什么我的所有log4net级别都是假的?

我在我的ASP.NET MVC3项目中使用log4net,但所有日志属性,如IsDebugEnabled == false 在我的AssemblyInfo中,我有: [assembly: XmlConfigurator(Watch = true)] 在我的日志课中,我有 public Log4NetLogger() { log4net.Config.XmlConfigurator.Configure(); Logger = LogManager.GetLogger(System.Reflection.MethodBase.GetCurrentMethod().DeclaringType); } 我在Web.Config中的相关配置是: 我已经沮丧到想要做的事情 public Log4NetLogger() { Logger = LogManager.GetLogger(System.Reflection.MethodBase.GetCurrentMethod().DeclaringType); Logger.IsDebugEnabled = true; } 但是当然Logger.IsDebugEnabled没有任何setter:/ 为了让这个该死的东西起作用,我该怎么做?

在Log4Net消息到达appender之前编辑它们

我有一个安全工具,通过电子邮件向用户发送新密码。 当阈值为VERBOSE时,生产电子邮件模块(我不拥有并且不想更改)将使用Log4Net记录整个html电子邮件消息正文。 由于电子邮件包含明文的域用户密码,因此我希望在日志消息到达appender之前从中删除密码。 有没有办法让我临时插入一个对象到Log4Net堆栈,这将允许我搜索LoggingEvent消息并更改它以掩盖我找到的任何密码? 我想插入对象,调用电子邮件模块,然后删除该对象。

如何为类库包含log4net?

我想将日志function实现到类库中,类库本身在web服务中引用。 我尝试添加app.config并完成所需的一切,但似乎抛出exception时,log4net什么都不做。 我的app.config 在AssemblyInfo.cs中: [assembly: log4net.Config.XmlConfigurator(ConfigFile = “app.config”)] 在LogManager.cs中: private static readonly ILog Log = log4net.LogManager.GetLogger (MethodBase.GetCurrentMethod().DeclaringType); public static void WriteLog(Exception ex) { Log.Error(ex); } 你能告诉我什么是错的吗? 如何让log4net为我的类库工作? 谢谢

log4net在代码中配置SqLite

今天早些时候我问了一个关于从代码配置log4net的问题,并且很快就得到了答案,这使我可以将其配置为输出到文本文件。 从那以后我的需求发生了变化,我需要使用SqLite作为追加器。 所以我创建了以下类来允许这个: public static class SqLiteAppender { public static IAppender GetSqliteAppender(string dbFilename) { var dbFile = new FileInfo(dbFilename); if (!dbFile.Exists) { CreateLogDb(dbFile); } var appender = new AdoNetAppender { ConnectionType = “System.Data.SQLite.SQLiteConnection, System.Data.SQLite”, ConnectionString = String.Format(“Data Source={0};Version=3;”, dbFilename), CommandText = “INSERT INTO Log (Date, Level, Logger, Message) VALUES (@Date, @Level, @Logger, @Message)” }; appender.AddParameter(new […]

如何在app start上禁用空日志文件的创建?

我已经在我的应用程序中成功配置了log4net,但有一件事对我来说有点烦人。 即使没有错误发生,我的应用程序启动后也会创建(空)日志文件。 我想在出现一些错误后才创建日志文件。