当前位置:  开发笔记 > 编程语言 > 正文

log4net elasticsearch使用自定义参数进行日志记录

如何解决《log4netelasticsearch使用自定义参数进行日志记录》经验,为你挑选了0个好方法。

我正在使用log4net和ElasticSearch以及Kibana.到现在为止,我的web.config看起来像这样:



  
    
  
  
  
  
  
    
  


  
  

我有一些自定义参数,如位置,标签,mstimeload,applicationid,页面,ipclient,...一切正常,但所有这些参数都是string类型,而我想也有integergeo_point类型,但我不知道如何告诉log4net哪个类型是我的参数.然后在c#中我写这样的日志:

private static readonly log4net.ILog log = log4net.LogManager.GetLogger(System.Reflection.MethodBase.GetCurrentMethod().DeclaringType);

log4net.ThreadContext.Properties["label"] = label;
log4net.ThreadContext.Properties["ipclient"] = ipaddress;
log4net.ThreadContext.Properties["browser"] = browserType;
log4net.ThreadContext.Properties["browsersignature"] = browserHashSignature;
log4net.ThreadContext.Properties["appversion"] = ASSettings.ApplicationVersion;
log4net.ThreadContext.Properties["mstimeload"] = msTime == null ? null : Convert.ToString(Convert.ToInt32(msTime.Value), CultureInfo.InvariantCulture);
log4net.ThreadContext.Properties["globalcountertailsloaded"] = globalCounter_tilesloaded == null ? null : Convert.ToString(globalCounter_tilesloaded.Value, CultureInfo.InvariantCulture);
log4net.ThreadContext.Properties["ipserveraddress"] = ipserveraddress;
log4net.ThreadContext.Properties["page"] = page;
log4net.ThreadContext.Properties["sessionuniquecodetag"] = sessionuniquecodetag;
log4net.ThreadContext.Properties["applicationid"] = applicationid;
log4net.ThreadContext.Properties["location"] = ASSecurity.GetLatLongFromIp(ipaddress);

log.Error(description, ex);

但我不确定这是否是最佳方式,或者是否还有其他方法.

推荐阅读
云聪京初瑞子_617
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有