首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在Azure上实现低开销分布式日志记录的更好选择是什么?

在Azure上实现低开销分布式日志记录的更好选择是什么?
EN

Stack Overflow用户
提问于 2011-06-28 13:10:05
回答 1查看 211关注 0票数 0

在Azure上实现低开销分布式日志记录的更好方法是什么?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2011-06-29 02:15:42

我们使用log4net作为我们的多tennant Azure Web角色的日志库。log4net ADO.Net附加器用于将所有错误记录到SQL Azure数据库中。要按客户端/用户过滤日志,我们使用一些log4net.GlobalContext属性,如下所示:

代码语言:javascript
复制
log4net.GlobalContext.Properties["Domain"] = new Log4netDomainProvider();
log4net.GlobalContext.Properties["Username"] = new Log4netUsernameProvider();

每个“提供者”只是一个覆盖ToString()方法的简单类。当log4net调用ToString()时,我们从当前会话中获取一个值(此SO answer将讨论此技术)。

代码语言:javascript
复制
public class Log4netDomainProvider
{
    public override string ToString()
    {
        string retval = null;

        if (HttpContext.Current == null)
            retval = "HttpContext is null";
        else if (HttpContext.Current.Session == null)
            retval = "HttpContext.Current.Session is null";
        else
            retval = HttpContext.Current.Session["Domain"];

        return retval;
    }
}

我希望这能解决你的问题。如果是这样的话,您可能想看看这个关于log4net日志记录上下文的很好的write-up

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/6501827

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档