package common import ( "bufio" "fmt" "os" "time" ) /*自定义日志文件*/ func DebugLog(args ...interface{}) error { var floderLog = "logs" logName := floderLog
原创 2021-08-06 16:56:26
283阅读
目录一. 基础版二. gin 中的日志处理三. Zap日志库SugearedLoggerLogger使用介绍1. 初始化logger2. 定制logger3. 格式化时间和添加调用者信息日志轮转与归档 lumberjackgin 与 zap三. go-zero 中的 logx四. 日志收集 Logstash五. go-zero 之 go-stash 一. 基础版基础版本中通过手动文件的方式,基
代码传送门1、日志主要说明:谁在什么时间,在什么地方,做了什么事情,产生了什么影响,影响的变化因子。2、日志系统主要建设在oplogger基础上。将现有的mysql存储方式改成elasticsearch的存储方式。并且更新了现有字段,使其更优化3、以下为主要设计原理图:以下为时序图:4、需要重写的接口如下://! 本地物流服务 service Logger { rpc Operate(Operat
转载 2024-04-24 11:14:32
45阅读
日志包的使用(log, zap)
原创 2023-06-20 10:49:28
196阅读
问题由来以前出现panic问题,我们会习惯通过日志给出的代码行,在对比数据分析问题,如果推断不出来,我们会多加日志,重新panic,再继续定位。如果打印了很多堆栈日志,但是日志信息不够怎么办,我们总不能加日志等下次重现后再定位吧?这样定位bug的工作效率特别低,所以我们可以仔细阅读堆栈日志,结合打印的日志快速定位bug。在阅读堆栈日志时,可能我们会疑惑:为什么定义是这样: func TestSta
转载 2024-08-27 15:58:40
46阅读
文章目录GoLang之GC 的历史及演进(4)16. Go 历史各个版本在 GC 方面的改进?17. Go GC 在演化过程中还存在哪些其他设计?为什么没有被采用?并发栈重扫ROC传统分代 GC18. 目前提供 GC 的语言以及不提供 GC 的语言有哪些?GC 和 No GC 各自的优缺点是什么?19. Go 对比 Java、V8 中 JavaScript 的 GC 性能如何?V8 的 GCJa
seelog介绍seelog是用Go语言实现的一个日志系统,它提供了一些简单的函数来实现复杂的日志分配、过滤和格式化。主要有如下特性: XML的动态配置,可以不用重新编译程序而动态的加载配置信息 支持热更新,能够动态改变配置而不需要重启应用 支持多输出流,能够同时把日志输出到多种流中、例如文件流、网络流等 支持不同的日志输出 命令行输出 文件输出 缓存输出 支持log rotate SMTP邮件 上面只列举了部分特性,seelog是一个特别强大
原创 2021-06-01 12:28:19
880阅读
Golang文件
原创 2024-05-25 22:14:27
39阅读
文章目录日志收集一、项目背景二、解决方案三、面临问题四、业界方案4.1 ELK4.2 存在问题:五、架构设计5.1 组件介绍5.2 将学到的技能六、队列消息的通信模型6.1 点对点模式(queue)6.2 发布/订阅(topic)七、Kafka7.1 介绍7.2 工作流程7.2 选择Partition原则7.3 ACK应答机制7.4 Topic和数据日志7.5 Patition结构7.6 消费数
转载 2023-09-18 16:55:15
271阅读
前面的话下面示例代码中的一些import我没做校验,我只是从我的一个测试代码里抠出来的,出现一些错误自己简单处理下就可以用。logrus简介logrus是一个可插拔的、结构化的日志框架。 logrus拥有六种日志级别:debug、info、warn、error、fatal和panic 可扩展的Hook机制: 允许使用者通过hook的方式将日志分发到任意地方,如本地文件系统、标准输出、logstas
一、日志收集系统背景1. 项目背景a. 每个系统都有日志,当系统出现问题时,需要通过日志解决问题b. 当系统机器比较少时,登陆到服务器上查看即可满足c. 当系统机器规模巨大,登陆到机器上查看几乎不现实2. 解决方案a. 把机器上的日志实时收集,统一的存储到中心系统b. 然后再对这些日志建立索引,通过搜索即可以找到对应日志c. 通过提供界面友好的web界面,通过web即可以完成日志搜索3. 遇到的问
转载 2024-03-07 09:44:37
250阅读
GC三色标记法过程开始前所有对象都是白色将根节点指向的对象标记成灰色遍历每个灰色对象,将自己指向的对象标成灰色,同时将自己标成黑色重复至没有灰色对象清除剩余的所有白色对象屏障因为标记过程是并发的,在并发阶段新创建的对象如何处理着色?白色,不行,万一引用这个新对象的是个黑色,那在这一轮标记结束后,该对象会被清除,可能会引起用户程序错误灰色,可行,染成灰色是偏保守但不会出错的方案,但如果这个对象实际
转载 2024-06-29 09:36:55
38阅读
Go V1.3 之前的标记清除(mark and sweep)流程:第⼀步,暂停程序业务逻辑, 找出不可达的对象,和可达对象。第⼆步, 开始标记,程序找出它所有可达的对象,并做上标记。第三步, 标记完了之后,然后开始清除未标记的对象.第四步, 停⽌暂停,让程序继续跑。然后循环重复这个过程,直到process程序⽣命周期结束。缺点:STW,stop the world;让程序暂停,程序出现卡顿 (重
转载 2023-11-29 15:22:04
9阅读
log 日志 log 模块可以自定义log 对象, 也可以使用log默认对象的日志方法 func New 创建log对象 func New(out io.Writer, prefix string, flag int) *Logger logs := log.New(os.Stdout, "lcoa
转载 2019-11-11 16:41:00
366阅读
2评论
packageesimport("bytes""context""encoding/json""errors""fmt"elasticsearch"github.com/elastic/go-elasticsearch/v6"log"github.com/sirupsen/logrus")vares*elasticsearch.ClientvaresAddrstring="http://10.17
原创 2020-07-08 11:45:14
1268阅读
1点赞
背景最近在公司使用golang web, gin + gorm 重新配置一个新的项目,以前在公司开发的时候,通过日志分析bug的时候,发现应该将所有的日志信息,都输出到一个文件里面,没有做区分,导致在定位上耗比较多的时间,趁着适配golang新的项目,按照日期将log分割出来实践Google了一圈,发现可以借助logrus 的HOOK功能进行实现,对于HOOK机制,可以通过HOOK的方式将日志信息
# 使用Golang和RedisMap 在实际的开发中,我们经常会遇到需要将数据存储在内存中并进行快速访问的情况。其中,使用Map是一种常见的数据结构。而为了提高性能和可靠性,我们可以将Map存储在Redis这样的内存数据库中。本文将介绍如何使用Golang和Redis来实现Map的存储和读取操作。 ## Redis介绍 Redis是一种开源的内存数据库,它支持多种数据结构,包括Strin
原创 2024-03-10 06:09:01
47阅读
go-ini入门教程go-ini简介Package ini provides INI file read and write functionality in Go.在实际开发时,配置信息一般不会在代码里硬编码,通常是放在配置文件里,或者数据库、缓存里。今天介绍的 go-ini 就是一个读写 ini文件的库。配置文件格式有很多,常用的有 json、xml、ini。其中 ini 是以节(sectio
转载 2月前
336阅读
本文为通过实例(图书项目)来学习go中Elasticsearch的使用,以及对项目带来的性能的提升 目录案例:http准备案例(新增):案例(查询):结果: 案例:http准备util/http.go 用于向es服务器发送json格式的Put和Post请求package util import ( "errors" "github.com/astaxie/beego/httplib" "g
本文为通过实例(图书项目)来学习go中Elasticsearch的使用,以及对项目带来的性能的提升 目录案例:http准备案例(新增):案例(查询):结果: 案例:http准备util/http.go 用于向es服务器发送json格式的Put和Post请求package util import ( "errors" "github.com/astaxie/beego/httplib" "g
  • 1
  • 2
  • 3
  • 4
  • 5