C# 在c中创建日志#
我使用log4net中的ILog对象在C#中创建日志。我正在传递两个参数1)存储库,它将在其中创建日志文件2)日志文件的名称,但它显示了一个异常,即未定义目录,如果我只传递日志文件的名称,程序将成功运行,但我无法找到日志文件 这是我的密码:-C# 在c中创建日志#,c#,.net,logging,cruisecontrol.net,C#,.net,Logging,Cruisecontrol.net,我使用log4net中的ILog对象在C#中创建日志。我正在传递两个参数1)存储库,它将在其中创建日志文件2)日志文件的名称,但它显示了一个异常,即未定义目录,如果我只传递日志文件的名称,程序将成功运行,但我无法找到日志文件 这是我的密码:- private void createLogger(string Logdirectory) { if (Directory.Exists(Logdirectory)) {
private void createLogger(string Logdirectory)
{
if (Directory.Exists(Logdirectory))
{
Log = LogManager.GetLogger( Logdirectory , LogFilename);
}
else
{
Log = LogManager.GetLogger(LogFilename);
}
}
以下是控制台输出:-
请帮助我找到通过Ilog或除filestream之外的任何其他方法获取记录器的合适方法。阅读文档,log4net是非常可配置的,文档记录良好 文件: 注意获取日志实例的方法的不同
<log4net> <!-- A1 is set to be a ConsoleAppender -->
<appender name="A1" type="log4net.Appender.ConsoleAppender"> <!-- A1 uses PatternLayout -->
<layout type="log4net.Layout.PatternLayout">
<conversionPattern value="%-4timestamp [%thread] %-5level %logger %ndc - %message%newline" />
</layout>
</appender>
<!-- Set root logger level to DEBUG and its only appender to A1 -->
<root>
<level value="DEBUG" />
<appender-ref ref="A1" />
</root>
</log4net>
有很多appender,上面是一个ConsoleAppender,但是数据库appender是存在的,其他类型可能适合您的需要。逐步查看代码以查看什么是LogFileName。此外,您可能正在将完整文件名路径与logdirectory连接起来,以字符串形式重复目录名,但这样做无法正常工作。LogManager.GetLogger(…)方法的字符串参数不指定日志文件名或目录。阅读Log4Net文档,了解这些字符串参数的用途。要将日志消息写入文件,需要设置所谓的FileAppender。请参阅Log4Net文档或有关此主题的博客文章/教程之一(如或)
<log4net> <!-- A1 is set to be a ConsoleAppender -->
<appender name="A1" type="log4net.Appender.ConsoleAppender"> <!-- A1 uses PatternLayout -->
<layout type="log4net.Layout.PatternLayout">
<conversionPattern value="%-4timestamp [%thread] %-5level %logger %ndc - %message%newline" />
</layout>
</appender>
<!-- Set root logger level to DEBUG and its only appender to A1 -->
<root>
<level value="DEBUG" />
<appender-ref ref="A1" />
</root>
</log4net>