相关疑难解决方法(0)

如何在包装Log4net时记录MethodName?

我已经将Log4net包装在静态包装器中并想要记录

loggingEvent.LocationInformation.MethodName
loggingEvent.LocationInformation.ClassName
Run Code Online (Sandbox Code Playgroud)

然而,我得到的只是我的包装器的名称.

如何使用forwardingappender和静态包装类来记录该信息

Logger.Debug("Logging to Debug");
Logger.Info("Logging to Info");
Logger.Warn("Logging to Warn");
Logger.Error(ex);
Logger.Fatal(ex);
Run Code Online (Sandbox Code Playgroud)

.net logging log4net

27
推荐指数
5
解决办法
4万
查看次数

使用包含Log4net的包装类时如何记录方法名称

我正在为log4.net实现一个自定义XML格式化程序

public class ISDSApplicationEventsLayout : XmlLayoutBase
{
    protected override void FormatXml(...)
    {
        //Location Info 
        writer.WriteStartElement("Method");
        writer.WriteString(**loggingEvent.LocationInformation.MethodName * *);
        writer.WriteEndElement();
    }
}
Run Code Online (Sandbox Code Playgroud)

问题是......现在当我从日志包装器类调用log方法时...称为日志记录

public static void logEvent(string message)
{
    log.Info(isdsLog); 
}
Run Code Online (Sandbox Code Playgroud)

我得到输出....

  <Method>logEvent</Method>
Run Code Online (Sandbox Code Playgroud)

如何使用名为logEvent的方法名称而不是logEvent作为方法名称?

谢谢

问题更新:

如果上面这看起来有点复杂 - 我真正要问的是:你如何保留在log4net中调用包装日志功能的方法的上下文...

示例...方法doWork()...调用 - >日志包装器 - >调用log4net ....

你如何使methodname = doWork和NOT日志包装函数....

.net log4net

9
推荐指数
1
解决办法
4847
查看次数

log4net中的方法名称C#

我为log4net创建了ac #wrapper.

它有Debug()和Error()方法.

我想记录记录记录的方法名称,但是如果我尝试使用%方法转换模式,它只打印Debug,它是包装器方法名称.

有没有办法打印完整的方法堆栈?

例如

而不是Debug - > SomeLoggingActionInSomeClass.Debug?

包装类代码:

public static class Logger
{
    private static ILog _log;

    static Logger()
    {
        log4net.Config.XmlConfigurator.Configure();

        _log = log4net.LogManager.GetLogger(System.Reflection.MethodBase.GetCurrentMethod().DeclaringType);
    }

    public static void Init()
    {
    }

    public static void Debug(string message)
    {
        _log.Debug(message);
    }
Run Code Online (Sandbox Code Playgroud)

调用类代码:

W6CustomizationLogger.Logger.Debug("Backup(): START");
Run Code Online (Sandbox Code Playgroud)

.net c# log4net

4
推荐指数
1
解决办法
6046
查看次数

这个简单的Log4Net包装可以改进吗?

我写了一个简单的log4net包装器.我想知道这个包装器代码是否可以改进.

我有点担心每个日志功能(信息,警告等)中引入的反射代码以获取调用函数名称.是否因此存在任何可能的性能问题?

namespace Acqueon.Pacer.Core.Helpers
{
    #region Imports

    using System;
    using System.Diagnostics;
    using System.Reflection;

    using log4net;

    #endregion

    /// <summary>
    /// log4net Log helper
    /// </summary>
    public sealed class Logger
    {
        #region Constants and Fields

        /// <summary>
        /// Determines whether the DEBUG Mode is enabled.
        /// </summary>
        private readonly bool isDebugEnabled;

        /// <summary>
        /// The is error enabled.
        /// </summary>
        private readonly bool isErrorEnabled;

        /// <summary>
        /// Determines whether the FATAL Mode is enabled.
        /// </summary>
        private readonly bool isFatalEnabled;

        /// <summary> …
Run Code Online (Sandbox Code Playgroud)

.net c# log4net

1
推荐指数
1
解决办法
3884
查看次数

标签 统计

.net ×4

log4net ×4

c# ×2

logging ×1