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 ...
随机推荐
- HIPPO-4J 1.3.0 正式发布:支持 Dubbo、RibbitMQ、RocketMQ 框架线程池
文章首发在公众号(龙台的技术笔记),之后同步到个人网站:xiaomage.info Hippo-4J 距离上一个版本 1.2.1 已经过去一个月的时间.在此期间,由 8 位贡献者 提交了 170+ c ...
- 2.1 动为进程,静为程序 -进程概论 -《zobolの操作系统学习札记》
2.1 动为进程,静为程序 -进程概论 目录 2.1 动为进程,静为程序 -进程概论 问1:发明进程的原因? 问2:现在计算机中的进程的定义是什么? 问3:为什么进程跟处理器的联系更密切? 问4:进程 ...
- 3D可视化在化工领域的应用及案例分享
2020年,中办.国办印发的<关于全面加强危险化学品安全生产工作的意见>中重点提出应加快"推进化工园区安全生产信息化.智能化平台建设,实现对园区内企业.重点场所.重大危险源.基础 ...
- Snowflake(雪花算法),什么情况下会冲突?
文章首发在公众号(龙台的技术笔记),之后同步到博客园和个人网站:xiaomage.info 分布式系统中,有一些需要使用全局唯一 ID 的场景,这种时候为了防止 ID 冲突可以使用 36 位的 UUI ...
- numpy学习笔记 01
NumPy(Numerical Python) 是 Python 语言的一个扩展程序库,支持大量的维度数组与矩阵运算,此外也针对数组运算提供大量的数学函数库. NumPy 是一个运行速度非常快的数学库 ...
- 关于webstorm打开HTML文件出现404错误的情况
第一种情况是你的端口号错误.你可以到设置里面找到调试器(第四个可以展开的按钮里面),找到端口号,把端口号改成8080(默认),再勾选旁边的按钮(可以接受外部链接). 你的文件命名方式不对,最好的文件名 ...
- Vuex的各个模块封装
一.各个模块的作用: state 用来数据共享数据存储 mutation 用来注册改变数据状态(同步) getters 用来对共享数据进行过滤并计数操作 action 解决异步改变共享数据(异步) 二 ...
- python基础教程:定义类创建实例
类的定义 在Python中,类通过class关键字定义,类名以大写字母开头 >>>class Person(object): #所有的类都是从object类继承 pass #pass ...
- EasyExcel导出创建Excel下拉框
话不多说,上才艺. 下面代码粘贴即用 /** * * 导出表格带下拉框 */ @GetMapping("exportBox") public void export(HttpSer ...
- Linux 安装Apche服务
用yum 进行在线安装apche服务 yum install -y httpd 我这边是centos7 需要开启一下端口: 1 firewall-cmd --zone=public --add-por ...