c# - Log4Net 记录到特定 Appender .NET Core

标签 c# .net-core log4net

使用.NET Core、C#、Log4Net 2.0.8

我正在尝试登录到不同的Appender,但由于某种原因没有 log4net.LogManager.GetLogger(string),只有 log4net.LogManager.GetLogger(type)。

我举了一个例子: Log4net - Logging to wrong appender

我希望从一个类(class)登录:

private static readonly ILog logA = LogManager.GetLogger("LogA");
log.Debug("This should log to LogA");

在另一个类中:

private static readonly ILog logB = LogManager.GetLogger("LogB");
log.Debug("This should log to LogB");

我尝试了解 Log4Net 以下 https://logging.apache.org/log4net/release/manual/introduction.html

但是这个例子还提到:

ILog x = LogManager.GetLogger("wombat");
ILog y = LogManager.GetLogger("wombat");

如何登录到特定的 Appender?谢谢

最佳答案

您需要使用 GetLogger(Assembly repositoryAssembly, string name) 重载,请参阅 spec .

必须传入程序集参数,该参数可以是例如Assembly.GetExecutingAssembly()

(请注意,这会记录到特定的记录器,而不是附加程序,这正是您想要做的。)

示例:

ILog logger = LogManager .GetLogger(Assembly.GetExecutingAssembly(), "LogB");

关于c# - Log4Net 记录到特定 Appender .NET Core,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60285428/

相关文章:

c# - iTextSharp - 如何获取用于签名的 PDF 内容,然后稍后再签名

c# - jquery Ajax错误函数未触发

visual-studio-code - MSBUILD 从 tasks.json 失败,但从 VS Code 终端工作

c# - 无法使用值 [MinimalLock] 在对象 [log4net.Appender.RollingFileAppender] 上设置属性 [lockingModel]

c# - Log4net能否在新创建的AppDomain中运行

.net - 使用 CaSTLe ILogger 和 log4net 迁移到语义日志记录

c# - 将 XElement 反序列化为类

c# - Entity Framework - 无法让 LEFT OUTER join 工作

docker asp.net core 容器在 mysql 容器之后启动

docker - Docker中的Dotnet Core开发