【发布时间】:2015-03-05 20:54:20
【问题描述】:
已经向我展示了如何使用 log4net 并获得了一个配置文件来使用。我丢失了这个配置文件,现在我无法让它工作。由于某种原因,配置它的人在 app.config 中有配置信息时无法让它工作,所以他将它放在输出文件夹的 log4net.config 中。
然后他在程序启动时调用了这个:
var logConfig = Path.Combine(Path.GetDirectoryName(typeof(App).Assembly.Location), "log4net.config");
var configStream = new FileInfo(logConfig);
log4net.Config.XmlConfigurator.Configure(configStream);
而且它工作得完美无缺。
现在我让它在一个新的控制台项目中完美运行。然而,我几乎所有的项目都是另一个应用程序的插件,所以我的项目类型是由另一个应用程序(称为 Revit)加载的类库。
无论如何,所以我知道我可以登录,但无法让它工作...... 这是我使用的 log4net.config:
<?xml version="1.0" encoding="utf-8" ?>
<log4net>
<appender name="RollingFileAppender" type="log4net.Appender.RollingFileAppender">
<lockingModel type="log4net.Appender.FileAppender+MinimalLock"/>
<file value="logs\" />
<datePattern value="dd.MM.yyyy'.log'" />
<staticLogFileName value="false" />
<appendToFile value="true" />
<rollingStyle value="Composite" />
<maxSizeRollBackups value="10" />
<maximumFileSize value="5MB" />
<layout type="log4net.Layout.PatternLayout">
<conversionPattern value="%date [%thread] %-5level %logger [%property{NDC}] - %message%newline" />
</layout>
</appender>
<root>
<level value="ALL" />
<appender-ref ref="RollingFileAppender"/>
</root>
</log4net>
我想要记录的每个类都在类级别声明一个 ILog 实例。 像这样:
static private ILog _logger = LogManager.GetLogger(typeof(Program));
ILog 实例报告所有日志记录已启用(调试等),但没有创建任何文件。
我还需要做其他事情吗?
我要疯了! 感谢您的帮助!
【问题讨论】:
-
你检查过你的项目名\bin\x86\Debug\logs 目录了吗?