Taurus.MVC 微服务框架 入门开发教程:项目集成:5、统一的日志管理。
本系列分为项目集成、项目部署、架构演进三个方向,后续会根据情况调整文章目录。
本系列第一篇:Taurus.MVC V3.0.3 微服务开源框架发布:让.NET 架构在大并发的演进过程更简单。
Taurus.MVC 微服务框架 入门开发教程:项目集成:1、服务端:注册中心、网关(提供可运行程序下载)。
Taurus.MVC 微服务框架 入门开发教程:项目集成:2、客户端:ASP.NET(C#)编程语言项目集成:应用中心。
Taurus.MVC 微服务框架 入门开发教程:项目集成:3、客户端:其它编程语言项目集成:应用中心。
Taurus.MVC 微服务框架 入门开发教程:项目集成:4、默认安全认证与自定义安全认证。
Taurus.MVC 微服务框架 入门开发教程:项目集成:5、统一的日志管理。
Taurus.MVC 微服务框架 入门开发教程:项目集成:6、微服务的二次开发。
Taurus.MVC 微服务框架 入门开发教程:项目部署:1、微服务应用程序常规部署实现多开,节点扩容。
Taurus.MVC 微服务框架 入门开发教程:项目部署:2、让Kestrel支持绑定多个域名转发,替代Ngnix使用。
Taurus.MVC 微服务框架 入门开发教程:项目部署:3、微服务应用程序版本升级:全站升级和局部模块升级。
Taurus.MVC 微服务框架 入门开发教程:项目部署:4、微服务应用程序发布到Docker部署(上)。
Taurus.MVC 微服务框架 入门开发教程:项目部署:5、微服务应用程序发布到Docker部署(下)。
Taurus.MVC 微服务框架 入门开发教程:项目部署:6、微服务应用程序Docker部署实现多开。
Taurus.MVC 微服务框架 入门开发教程:架构演进:1、从单应用程序简单过渡到负载均衡。
Taurus.MVC 微服务框架 入门开发教程:架构演进:2、负载均到模块拆分负载。
Taurus.MVC 微服务框架 入门开发教程:架构演进:3、模块拆分负载到多级负载均衡。
Taurus.MVC 微服务框架 入门开发教程:运行示例:https://github.com/cyq1162/Taurus.MVC.MicroService.Demo
前言:
对于微服务的日志统一管理来说,除了把日志统一发送到MQ,再进行统一处理之外。
也可以利用CYQ.Data的Log功能,统一写数据库。
CYQ.Data对日志的写是线程队列写,因此不用担心高并发与执行阻塞问题。
Taurus.MVC 本身就引用了CYQ.Data,因此直接用即可,下面介绍简单使用方法:
1、配置数据库链接:LogConn
appsettings.json:配置如下:
{
"ConnectionStrings": {
"LogConn": "server=.;database=MSLog;uid=sa;pwd=123456"
},
"AppSettings": {
"IsWriteLog": true
}
}
web.config:配置如下:
<configuration>
<connectionStrings>
<add name="LogConn" connectionString="txt path={0}App_Data"/>
</connectionStrings>
<appSettings>
<add key="IsWriteLog" value="true"/>
</appSettings>
</configuration>
说明:
1、通过配置IsWriteLog,启用写日志功能,默认false,异常会直接抛出来。
2、通过配置LogConn,指定数据库,默认会检测并创建SysLogs表,并进行日志数据写入。
2、配置数据库链接(备):LogConn_Bak
appsettings.json:配置如下:
{
"ConnectionStrings": {
"LogConn": "server=.;database=MSLog;uid=sa;pwd=123456"
"LogConn_Bak": "server=.;database=MSLog_bak;uid=sa;pwd=123456"
},
"AppSettings": {
"IsWriteLog": true
}
}
web.config:配置如下:
<configuration>
<connectionStrings>
<add name="LogConn" connectionString="txt path={0}App_Data/LogA/"/>
<add name="LogConn_bak" connectionString="txt path={0}App_Data/LogA_Bak/"/>
</connectionStrings>
<appSettings>
<add key="IsWriteLog" value="true"/>
</appSettings>
</configuration>
说明:
如果主数据库了,默认链接会切换到备数据库链接写,避免日志丢失。
3、自定义数据库日志表名:
appsettings.json:配置如下:
{
"ConnectionStrings": {
"LogConn": "server=.;database=MSLog;uid=sa;pwd=123456"
"LogConn_Bak": "server=.;database=MSLog_bak;uid=sa;pwd=123456"
},
"AppSettings": {
"IsWriteLog": true,
"LogTableName":"自定义微服务模块日志表名"
}
}
web.config:配置如下:
<configuration>
<connectionStrings>
<add name="LogConn" connectionString="txt path={0}App_Data/LogA/"/>
<add name="LogConn_bak" connectionString="txt path={0}App_Data/LogA_Bak/"/>
</connectionStrings>
<appSettings>
<add key="IsWriteLog" value="true"/>
<add key="LogTableName" value="自定义日志表名"/>
</appSettings>
</configuration>
说明:
对于数据库,可以独立一个日志数据库,但对于不同的微服务,可以采用不同的表名来区分监控日志。
4、自定义数据库日志表名:按每天或每月生成一张表进行采集
在系统运行启动之后,找个写代码的地方:
1、按每天生成1张日志表:
CYQ.Data.AppConfig.LogTableName="日志表名"+DateTime.Now.ToString("yyyyMMdd");
2、按每月生成1张日志表:
CYQ.Data.AppConfig.LogTableName="日志表名"+DateTime.Now.ToString("yyyyMM");
3、按每年生成1张日志表:
CYQ.Data.AppConfig.LogTableName="日志表名"+DateTime.Now.ToString("yyyy");
说明:
为了避免日志表长时间收集数据过大的问题,可以通过自定义表名,来达到区分。
通过在写日志之前,通过代码修改默认的配置表名,即可达到自定义分拆表的需求。
5、业务框架收集日志的代码调用:
默认,调用简单,在有需要的地方直接写即可:
CYQ.Data.Log.Write(日志信息,分类名称)
详情接口:
public static partial class Log
{
public static void Write(Exception err)
public static void Write(Exception err, string logType) public static void Write(string message)
public static void Write(string message, string logType) }
6、默认生成的数据库表结构与信息:

说明:
除了错误信息内容与分类名,系统还会收集上下文中的相关信息,并进行一并记录。
总结:
通过Taurus.MVC微服务框架默认提供的日志功能,仅需要简单配置,即可达到高性能的收集各种异常日志或其它日志。
Taurus.MVC 微服务框架 入门开发教程:项目集成:5、统一的日志管理。的更多相关文章
- Taurus.MVC 微服务框架 入门开发教程:项目部署:1、微服务应用程序常规部署实现多开,节点扩容。
系列目录: 本系列分为项目集成.项目部署.架构演进三个方向,后续会根据情况调整文章目录. 本系列第一篇:Taurus.MVC V3.0.3 微服务开源框架发布:让.NET 架构在大并发的演进过程更简单 ...
- Taurus.MVC 微服务框架 入门开发教程:项目部署:2、让Kestrel支持绑定多个域名转发,替代Ngnix使用。
系列目录: 本系列分为项目集成.项目部署.架构演进三个方向,后续会根据情况调整文章目录. 本系列第一篇:Taurus.MVC V3.0.3 微服务开源框架发布:让.NET 架构在大并发的演进过程更简单 ...
- Taurus.MVC 微服务框架 入门开发教程:项目部署:3、微服务应用程序版本升级:全站升级和局部模块升级。
系列目录: 本系列分为项目集成.项目部署.架构演进三个方向,后续会根据情况调整文章目录. 本系列第一篇:Taurus.MVC V3.0.3 微服务开源框架发布:让.NET 架构在大并发的演进过程更简单 ...
- Taurus.MVC 微服务框架 入门开发教程:项目集成:1、服务端:注册中心、网关(提供可运行程序下载)。
系列目录: 本系列分为项目集成.项目部署.架构演进三个方向,后续会根据情况调整文章目录. 本系列第一篇:Taurus.MVC V3.0.3 微服务开源框架发布:让.NET 架构在大并发的演进过程更简单 ...
- Taurus.MVC 微服务框架 入门开发教程:项目集成:2、客户端:ASP.NET Core(C#)项目集成:应用中心。
系列目录: 本系列分为项目集成.项目部署.架构演进三个方向,后续会根据情况调整文章目录. 本系列第一篇:Taurus.MVC V3.0.3 微服务开源框架发布:让.NET 架构在大并发的演进过程更简单 ...
- Taurus.MVC 微服务框架 入门开发教程:项目集成:4、默认安全认证与自定义安全认证。
系列目录: 本系列分为项目集成.项目部署.架构演进三个方向,后续会根据情况调整文章目录. 本系列第一篇:Taurus.MVC V3.0.3 微服务开源框架发布:让.NET 架构在大并发的演进过程更简单 ...
- Taurus.MVC 微服务框架 入门开发教程:项目部署:4、微服务应用程序发布到Docker部署(上)。
系列目录: 本系列分为项目集成.项目部署.架构演进三个方向,后续会根据情况调整文章目录. 开源地址:https://github.com/cyq1162/Taurus.MVC 本系列第一篇:Tauru ...
- Taurus.MVC 微服务框架 入门开发教程:项目部署:5、微服务应用程序发布到Docker部署(下)。
系列目录: 本系列分为项目集成.项目部署.架构演进三个方向,后续会根据情况调整文章目录. 开源地址:https://github.com/cyq1162/Taurus.MVC 本系列第一篇:Tauru ...
- Taurus.MVC 微服务框架 入门开发教程:项目部署:6、微服务应用程序Docker部署实现多开。
系列目录: 本系列分为项目集成.项目部署.架构演进三个方向,后续会根据情况调整文章目录. 开源地址:https://github.com/cyq1162/Taurus.MVC 本系列第一篇:Tauru ...
随机推荐
- 二进制固件函数劫持术-DYNAMIC
背景介绍 固件系统中的二进制文件依赖于特定的系统环境执行,针对固件的研究在没有足够的资金的支持下需要通过固件的模拟来执行二进制文件程序.依赖于特定硬件环境的固件无法完整模拟,需要hook掉其中依赖于 ...
- 中国程序员容易发错音的单词「GitHub 热点速览 v.22.23」
中国程序员容易发错音的单词,像极了学生时代的纠错本,收录着偶尔会忘记的单词.不过,它似乎更新频率跟不上我们的进步速度,至少一半以上的单词读起来是没有压力的.同样没有压力的还有让应用程序动起来的 aut ...
- 互联网公司实行目标管理(OKR)五点原则和基础
下面从公司文化.组织架构.管理者.落地执行和区别绩效考核五个方面,讲述了如何在公司落地目标管理(OKR),这些是实施OKR的基础,也是原则,虽然写得比较简单,其实是我过去两年多不断观察.实践和摸索的总 ...
- ExtJS 布局-Center布局(Center layout)
更新记录: 2022年6月12日 检查发布. 2022年6月1日 开始. 1.说明 center布局将子项放置在容器的中心. 2.设置布局方法 在父容器中设置 layout: 'center', // ...
- 从零开始实现lmax-Disruptor队列(三)多线程消费者WorkerPool原理解析
MyDisruptor V3版本介绍 在v2版本的MyDisruptor实现多消费者.消费者组间依赖功能后.按照计划,v3版本的MyDisruptor需要支持多线程消费者的功能. 由于该文属于系列博客 ...
- 建立QT工程的规范型,以及重要性
当前管理开发多个项目,故名Projects 下一级目录,具体项目,故示例Project,根据实际情况自行取名 再下一级目录,有三个子目录 bin:生成的可执行文件或者动态链接库,build:编译源码时 ...
- ansible在linux和windows批量部署zabbix-agent2
--- - hosts: linux tasks: - name: copy centos 7 zabbix-agent2 copy: src=zabbix-agent2-5.0.11-1.el7.x ...
- 利用kubernetes资源锁完成自己的HA应用
Backgroud 前一章中,对kubernetes的选举原理进行了深度剖析,下面就通过一个example来实现一个,利用kubernetes提供的选举机制完成的高可用应用. 对于此章需要提前对一些概 ...
- 《AlignedReID:Surpassing Human-Level Performance in Person Re-Identification》理解
- 阿里云 python3 使用duplicity
前言 公司业务中使用的备份工具一直是alicloud-duplicity,一直也没研究.后来业务出问题了,看了看,原来是基于duplicity开发的,使用了半天,感觉很不错,我感觉他的特点有: 加密备 ...