How to log stack trace using log4net (C#)

前端 未结 5 1635
[愿得一人]
[愿得一人] 2020-12-01 21:06

How to log stack trace with log4net? I am using .Net version.

They way I have is Log.Error(ex).

Thanks

5条回答
  •  猫巷女王i
    2020-12-01 21:39

    public static Logger SetIfNeededAndGetLogger(string serviceName, string methodName)
    {
        Logger logger = null;
    
        try
        {
            if (!string.IsNullOrWhiteSpace(serviceName) && !string.IsNullOrWhiteSpace(methodName))
            {
                ILog log = null;
                var traceSourceName = string.Format("{0}{1}", serviceName, methodName);
                if (!string.IsNullOrWhiteSpace(traceSourceName))
                {
                    logger = LogSources.FirstOrDefault(x => x.ServiceLogType == traceSourceName);
                    if (logger == null)
                    {
                        log = LogManager.GetLogger(traceSourceName);
                        //logger = new Logger(log, IHEService.MediLogClientGuid, traceSourceName, methodName);
                        logger = new Logger(log, System.Guid.NewGuid(), traceSourceName, methodName);
                        SetLoggingSource(logger);
                    }
                }
            }
        }
        catch (Exception)
        {
            //silent faiure
        }
    
        return logger;
    }
    
    private static void SetLoggingSource(Logger value)
    {
        LogSources.Add(value);
    }
    

提交回复
热议问题