首页 > 其他分享 >Taurus.MVC 微服务框架 入门开发教程:项目集成:5、统一的日志管理。

Taurus.MVC 微服务框架 入门开发教程:项目集成:5、统一的日志管理。

时间:2022-08-20 15:22:29浏览次数:92  
标签:教程 服务 入门 Taurus MVC 日志

系列目录:

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

本系列第一篇: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,日志
From: https://www.cnblogs.com/cyq1162/p/16600642.html

相关文章

  • Linux系统中/var/log下常见日志文件详解
    1)/var/log/secure记录登录系统存取数据的文件2)/var/log/message几乎所有的开机系统发生的错误都会在此记录3)/var/log/maillog记录邮件的存取和往来4)/var/log/cron记......
  • Mysql日志
    1 错误日志 ErrorLog服务器启动关闭过程中的信息服务器运行过程中的错误信息从服务器上启动服务器进程时产生的信息查看路径:showvariableslike'log_error';......
  • MVCC
    原理总体上来讲MVCC的实现是基于ReadView版本链以及Undo日志实现的MVCC就是在使用READCOMMITTD、REPEATABLEREAD这两种隔离级别的事务在执行普通的SELECT操作时访问记......
  • Log4NET 日志分割删除与压缩解决思路(附源码)
    最近公司发现,日志产生的太多了,于是让我写个方法来解决,一开始是让我删除,后来想了想让我先压缩再删除文件夹,下面提供两个版本的源代码及简单使用。注:这两个代码也是博主CV的......
  • mysql MVCC中高水位先的trx_id
    读《mysql45讲》之后的总结 InnoDB为每个事务构造了一个数组,用来保存这个事务启动瞬间,当前正在“活跃”的所有事务ID。“活跃”指的就是,启动了但还没提交数组里面事......
  • MySQL日志详解
    一、mysql日志日志是mysql数据库的重要组成部分,记录着数据库运行期间各种状态信息。mysql日志主要包括错误日志、二进制日志、查询日志、慢查询日志、事务日志(redolog......
  • 【文件上传】Spring MVC 文件上传
    (1)文件上传三要素:1、表单的提交方式method="POST"2、表单的enctype属性是多部分表单形式enctype=“multipart/form-data"3、表单项(元素)type="file"<formaction=""m......
  • springmvc的简单使用(3)
    一:日期处理:1:日期的提交处理: 单个日期处理:要使用注解,并且注解要搭配springmvc文件中的<annotationdriven><mvc:annotation-driven></mvc:annotation-driven><formact......
  • 软件发布时 生成发布日志文件 单点登录 getGitInfo.bat
    需求每次发包的时候,前端是3个包,如果后期出现问题,不好回查所以把当前项目的git信息记录下来以便回查第一次手动写了下,发现比较麻烦,所以写个脚本,每次发布的时候运行下即......
  • k8s 使用 kubeadm init 初始化失败日志一直提示"Error getting node" err="node \"ma
    系统版本CentOSLinuxrelease7.9.2009(Core)内核版本Linux3.10.0-1160.76.1.el7.x86_64x86_64docker版本Dockerversion20.10.17,build100c701k8......