ExceptionLess新玩法 — 记日志

ExceptionLess

之前也有介绍过这个框架,其实网上也有很多的资料,无论是部署还是一些详细的高级玩法都讲的很清楚也很棒,博主也学习了一些他们的博文,因为很多的东西比如本地部署别人已经写了,我再去写也不免俗套。所以这里介绍一些我在项目中玩法

有需要本地部署教程的同学可以看 这一篇博文 ,内容通俗易通,值得推荐

 

日志记录

相信大家的项目中日志功能已经做为基础设施里必不可少的一部分了,日志记录可以更好的用户习惯,还可以看到项目的健壮性。大多使用log4net,NLog。现在exceptionless成为了我们的新选择!

 

其实exceptionless给我们准备好了相应的入口,方法也是已经准备好了。

使用下面这个方法可以轻松创建一个日志提交,而tags允许我们自定义多个标签。除了Info还有多种级别比如 Debug、Warn、Error等等

/// <summary>/// 信息 
/// </summary>public static void Info(string message, params string[] tags){ExceptionlessClient.Default.CreateLog(message, LogLevel.Info).AddTags(tags).Submit();}

 

现在在Login方法里尝试着记一下日志


        /// <summary>/// 转到登陆页面     
     
/// </summary>/// <returns></returns>
       [HttpGet]      
       
public ActionResult Login(){ExceptionLessLog.Info("用户登录了", "我是标签一", "我是标签二");        
           
return View();}

可以看到现在已经同步了上来,初步的功能已经实现了

 

既然是基础设施,在其它的每一个层我们可能都会用到,所以应该封装一下,为什么要用接口呢?当然是以防半路换车了,飙车也要做好充足的准备才可以嘛,其实这里的参数不是很合理,因为其它的组件可能没有tags这样的参数,我们可以进行改造一下,替换成字典。不过博主公司的项目就没有这个困扰了,留给大家去做吧

   public class ExceptionLessLog :ILog{     
       
/// <summary>/// 跟踪  
       
/// </summary>public void Trace(string message, params string[] tags){ExceptionlessClient.Default.CreateLog(message, LogLevel.Trace).AddTags(tags).Submit();}  
   
       
/// <summary>/// 调试    
       
/// </summary>public void Debug(string message, params string[] tags){ExceptionlessClient.Default.CreateLog(message, LogLevel.Debug).AddTags(tags).Submit();}    

       
/// <summary>/// 信息    
       
/// </summary>public void Info(string message, params string[] tags){ExceptionlessClient.Default.CreateLog(message, LogLevel.Info).AddTags(tags).Submit();}        

       /// <summary>/// 警告  
       
/// </summary>public void Warn(string message, params string[] tags){ExceptionlessClient.Default.CreateLog(message, LogLevel.Warn).AddTags(tags).Submit();}      
       
/// <summary>/// 错误  
       
/// </summary>public void Error(string message, params string[] tags){ExceptionlessClient.Default.CreateLog(message, LogLevel.Error).AddTags(tags).Submit();}}

相关文章:

  • 免费开源分布式系统日志收集框架 Exceptionless

  • 使用 Exceptionless 作为 Log Server 搭配 NLog 记录系统日志

  • 使用Elasticsearch 与 NEST 库 构建 .NET 企业级搜索

  • 为elasticsearch集成一些实用 插件以及配置的开箱即用的版本

  • Exceptionless 本地部署

原文地址:http://www.cnblogs.com/LiangSW/p/6026817.html


.NET社区新闻,深度好文,微信中搜索dotNET跨平台或扫描二维码关注

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/327938.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

19年8月 字母哥 番外篇:周边技术生态

番外篇&#xff1a;周边技术生态 如何使用git查看本教程代码 centos7安装docker图文详解 docker安装mongodb(单点)图文详解 如何使用mybatis自动生成的代码

pt939g联通_尝试修改友华PT939G的省份设置,成功!

本帖最后由 笑西风 于 2020-7-4 08:04 编辑个人感觉友华PT939G无线光猫一体机的配置还不错&#xff0c;核心跟新路由三相同&#xff0c;所以总想折腾它。之前找了各类root/1234&#xff0c;user/1234之类的密码&#xff0c;最终通过CSDN大侠的yhtcAdmin /Cm1YHfw登录了光猫。准…

MySQL中有外键时数据表的删除方法

直接删除grade&#xff0c;被引用的数据表时如下 报错 解决方法 先删除student&#xff0c;要引用的数据表 然后删除grade&#xff0c;被引用的数据表 成功

微软全球副总裁给你发了一张Connect 2016专属邀请卡:信仰再充值!Connect 2016技术大会在线直播!

Connect(); 2016在线直播啦&#xff01;11月16日晚 22:45不见不散&#xff01;快来制作专属自己的大会邀请函&#xff01; Connect(); 是微软面向开发者的一场顶级线上技术盛会&#xff0c;意在为广大开发者带来微软最新的开发技术资讯&#xff0c;每年有超过50万资深开发人员及…

MongoDb安装使用

Microsoft Windows [版本 10.0.17763.107] (c) 2018 Microsoft Corporation。保留所有权利。 C:\Users\Administrator>mongon mongon 不是内部或外部命令&#xff0c;也不是可运行的程序 或批处理文件。 C:\Users\Administrator>mongo mongo 不是内部或外部命令&#x…

Java中的String与常量池

转载自 Java中的String与常量池string是java中的字符串。String类是不可变的,对String类的任何改变,都是返回一个新的String类对象。下面介绍java中的String与常量池。 1. 首先String不属于8种基本数据类型&#xff0c;String是一个对象。 因为对象的默认值是null&#xff0c;…

tp中怎么执行mysql事务_tp中使用事务

是什么事务是为了防止&#xff0c;多个操作&#xff0c;其中有失败&#xff0c;数据有部分被执行成功的时候使用的。比如&#xff0c;银行&#xff0c;用户转账。张三钱扣了&#xff0c;结果李四钱还增加&#xff01;这个时候需要使用事务&#xff0c;确保张三钱扣了&#xff0…

TRUNCATE vs DELETE命令

TRUNCATE vs DELETE命令 作用&#xff1a;用于完全清空表数据 , 但表结构 , 索引 , 约束等不变 ; 语法&#xff1a; TRUNCATE [TABLE] table_name;-- 清空年级表 TRUNCATE grade注意&#xff1a;区别于DELETE命令 相同 : 都能删除数据 , 不删除表结构 , 但TRUNCATE速度更快 …

mysql 时间 1_(转)mysql日期时间函数1

MySQL 日期跟时间函数(一)作者&#xff1a; Mr.ZhangMySQL 日期跟时间的样式在MySQL 中有很多有用处的日期跟时间函数。我们常常看到许多应用于日期的计算是在代码方面上进行的&#xff0c;但是其实他们完全可以使用MySQL中自带的函数来实现。在我们实际的查看MySQL的时间跟日期…

ASP.NET Core 整合Autofac和Castle实现自动AOP拦截

前言&#xff1a; 除了ASP.NETCore自带的IOC容器外&#xff0c;我们还可以使用其他成熟的DI框架&#xff0c;如Autofac&#xff0c;StructureMap等&#xff08;笔者只用过Unity&#xff0c;Ninject和Castle&#xff09;。 1.ASP.NET Core中的Autofac 首先在Project.json的Depen…

hibernate多对多、正向工程创建数据表——访问温馨提示

大家都知道&#xff0c;hibernate可以反向生成实体类以及配置文件&#xff0c;但是正向的可能做的人并不是很多&#xff0c;什么是正向&#xff0c;什么是反向呢&#xff0c;正向指的是先有了实体类&#xff08;entity&#xff09;&#xff0c;然后在根据你的实体类通过hiberna…

SQL---空字符串不等于null

查询没有写家庭住址的同学 SELECT studentname FROM student WHERE Address IS NULL; 空字符串不等于null&#xff0c;所以输入的是空字符串&#xff0c;仍然可以查到 正确做法 SELECT studentname FROM student WHERE Address’’ OR Address IS NULL;

Redis安装与配置( Windows10 )

Redis安装与配置&#xff08; Windows10 &#xff09; 2018-09-22 17:54:21 gcl_air 阅读数 13357更多 分类专栏&#xff1a; redis 版权声明&#xff1a;本文为博主原创文章&#xff0c;遵循 CC 4.0 BY-SA 版权协议&#xff0c;转载请附上原文出处链接和本声明。 本文链接…

我为什么选择Angular 2?

没有选择是痛苦的&#xff0c;有太多的选择却更加痛苦。而后者正是目前前端领域的真实写照。新的框架层出不穷&#xff1a;它难吗&#xff1f;它写得快吗&#xff1f;可维护性怎样&#xff1f;运行性能如何&#xff1f;社区如何&#xff1f;前景怎样&#xff1f;好就业吗&#…

java io系列09之 FileDescriptor总结

转载自 java io系列09之 FileDescriptor总结FileDescriptor 介绍 FileDescriptor 是“文件描述符”。FileDescriptor 可以被用来表示开放文件、开放套接字等。以FileDescriptor表示文件来说&#xff1a;当FileDescriptor表示某文件时&#xff0c;我们可以通俗的将FileDescri…

mod auth mysql_Apache使用mysql认证用户

使用MySQL进行认证第1步&#xff1a;下载MySQL认证模块&#xff0c;并更名为mod_auth_mysql.so文件&#xff0c;并保存在apache的modules目录下第2步&#xff1a;apache要加载此功能模块LoadModule 模块名 所在的目录示例&#xff1a;LoadModule mysql_auth_module modules/mod…

count() * ,1,字段 三兄弟

/COUNT:非空的/ SELECT COUNT(studentname) FROM student; SELECT COUNT(*) FROM student; SELECT COUNT(1) FROM student; /推荐/ – 从含义上讲&#xff0c;count(1) 与 count() 都表示对全部数据行的查询。 – count(字段) 会统计该字段在表中出现的次数&#xff0c;忽略字…

拉取git的分支项目

1.空文件夹 git clone xxx 2.进入项目 重新git bash 3.git checkout 1.1(分支名) 分支切换成功

Jdk8一行代码读取文件

转载自 Jdk8一行代码读取文件JDK7中引入了新的文件操作类java.nio.file.File&#xff0c;它包含了很多有用的方法来操作文件&#xff0c;比如检查文件是否为隐藏文件&#xff0c;或者是检查文件是否为只读文件。开发者还可以使用Files.readAllBytes(Path)方法把整个文件读入内…