gpt4 book ai didi

c# - 在 C# 中创建日志

转载 作者:太空宇宙 更新时间:2023-11-03 15:35:26 24 4
gpt4 key购买 nike

我正在使用 log4net 中的 ILog 对象在 C# 中创建日志。我正在传递两个参数 1) 将在其中创建日志文件的存储库 2) 日志文件的名称但它显示未定义目录的异常,如果我通过仅传递日志文件的名称来执行此操作,程序将成功运行但我无法找到日志文件。

这是我的代码:-

private void createLogger(string Logdirectory)
{
if (Directory.Exists(Logdirectory))
{
Log = LogManager.GetLogger( Logdirectory , LogFilename);

}
else
{
Log = LogManager.GetLogger(LogFilename);

}
}

这是控制台输出:-

enter image description here帮我找到合适的方法来通过 Ilog 或除文件流之外的任何其他方法获取记录器

最佳答案

阅读文档,log4net 是非常可配置的并且有详细的文档。

文档:https://logging.apache.org/log4net/release/manual/configuration.html

using Com.Foo; // Import log4net classes.
using log4net;
using log4net.Config;
public class MyApp
{ // Define a static logger variable so that it references the // Logger instance named "MyApp".
private static readonly ILog log = LogManager.GetLogger(typeof(MyApp));
static void Main(string[] args)
{ // Set up a simple configuration that logs on the console.
BasicConfigurator.Configure();
log.Info("Entering application.");
Bar bar = new Bar();
bar.DoIt();
log.Info("Exiting application.");
}
}

注意获取日志实例的方法的不同。

  1. 您要求的是当前类型的 ILog 而不是明确的文件名
  2. 你告诉 log4net 从 app.config/web.config 读取配置设置
  3. 根据您的配置,您可能需要使用 XmlConfigurator

.config 文件的示例是:

<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,但存在一个 DatabaseAppender 和其他可能适合您需要的类型。

关于c# - 在 C# 中创建日志,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32027462/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com