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 ...
随机推荐
- 意味着JNPF迈入新时代的3.4版本,与3.3.3版本有着哪些功能区别呢?
在线开发 3.3.3版本 同一个功能分功能设计和移动设计 功能设计没有更换模式 功能设计没有同步菜单 功能设计和移动设计无表模式 3.4.1版本 同一个功能可以在功能设计里面设计,根据客户需求自己选 ...
- QT 基于QScrollArea的界面嵌套移动
在实际的应用场景中,经常会出现软件界面战场图大于实际窗体大小,利用QScrollArea可以为widget窗体添加滚动条,可以实现小窗体利用滚动条显示大界面需求.实现如下: QT创建一个qWidget ...
- redis相关知识点
redis 的相关知识点 启动 启动代码 redis-cli -a 密码 通用命令 expire: 设置有效期 expire name 10 key key * 相关数据类型 String set:添 ...
- 02 RESTFul接口和HTTP的幂等性分析
RESTFul接口和HTTP的幂等性分析 REST全称是Representational State Transfer,中文为表述性状态转移,REST指的是一组架构约束条件和原则 RESTful表述的 ...
- 线程池:ThreadPoolExcutor源码阅读
ThreadPoolExcutor源码流程图:(图片较大,下载再看比较方便) 线程池里的二进制奥秘 前言: 线程池的五种状态state(RUNNING.SHUTDOWN.STOP.TIDYING.TE ...
- windows 2003系统安装
一.使用workstation创建虚拟机 二.系统安装 点击"Enter" 点击"F8" 点击"Enter" 如下图所示: 点击" ...
- word processing in nlp with tensorflow
Preprocessing Tokenizer source code:https://github.com/keras-team/keras-preprocessing/blob/master/ke ...
- Python: list列表的11个内置方法
先来逼逼两句: 在实际开发中,经常需要将一组(不只一个)数据存储起来,以便后边的代码使用.在VBA中有使用数组,可以把多个数据存储到一起,通过数组下标可以访问数组中的每个元素.Python 中没有数组 ...
- 不花钱~Python制作视频解析免费追剧神器
同学们在闲暇之余是否喜欢看电影或者电视剧呢? 今天带领大家使用python制作能免费追剧的桌面软件.还在等什么?发车了! 效果我就不再这里演示了https://jq.qq.com/?_wv=1027& ...
- 解决方案:可以ping别人,但是别人不能ping我
背景:我在写分布式爬虫项目时遇到了slave端无法ping通我的master,我的master可以ping通slave.我将master的防火墙关闭后slave可以ping了,但是这不是解决办法.于是 ...