本系列分为项目集成、项目部署、架构演进三个方向,后续会根据情况调整文章目录。

本系列第一篇: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微服务框架默认提供的日志功能,仅需要简单配置,即可达到高性能的收集各种异常日志或其它日志。

最新文章

  1. EF6 Create Different DataContext on runtime(运行时改变连接字符串)
  2. PAMI 2010 Context-aware saliency detection
  3. iOS--为视图添加阴影
  4. cocoaPods下载使用记录
  5. 【Ruby】Ruby的model学习——Active Record Associations
  6. 一行一行分析JQ源码学习笔记-06
  7. iOS WebView的用法
  8. C#相等性 - 三个方法和一个接口
  9. Tomcat修改service.xml性能调优 增加最大并发连接数
  10. 图论.DP
  11. Python学习—基础篇之基本数据类型(二)
  12. Java 面向对象的三大特性之一 继承
  13. iOS 百度地图截屏
  14. [C# | XML] XML 反序列化解析错误:&lt;xml xmlns=&#39;&#39;&gt; was not expected. 附通用XML到类解析方法
  15. poj 3660 Cow Contest Flyod
  16. .NET-WEB网站部署的过程中需要注意的问题
  17. Nginx正向代理配置
  18. Linux中磁盘还有空间,但创建文件时提示空间不足
  19. dp 动规 最佳加法表达式
  20. cpython和lua源码阅读

热门文章

  1. 使用VMware安装Ubuntu虚拟机
  2. mybatis-plus分页插件
  3. 【题解】Codeforces Round #798 (Div. 2)
  4. python爬虫之JS逆向某易云音乐
  5. Camunda如何适配国产数据库达梦
  6. php 正则获取字符串中的汉字(去除字符串中除汉字外的所有字符)
  7. flink 流的合并
  8. BUUCTF-被嗅探的流量
  9. HDLBits-&gt;Verilog Language-&gt;Modules:Hierarchy-&gt;Modules and vectors
  10. 03 转换css元素的类别