当前位置: 首页 > news >正文

golang使用tail追踪文件变更

简介

借助 github.com/hpcloud/tail ,可以实时追踪文件变更,达到类似shell命令tail -f的效果。

代码

以下示例代码用于实时读取nginx的access.log日志文件,读取到后输出到控制台。如果nginx日志做了json格式化,还可以解析读取到的内容,对日志进行更多处理,比如日志内容写入数据库、做日志告警等,对于访问量较小的系统来说,这样就不需要消耗很多资源去搭建ELK、Loki等专门的日志监控系统。

package main
import ("flag""fmt""io""os""github.com/hpcloud/tail"
)
var (logfile = flag.String("f", "access.log", "日志文件路径")
)
func main() {flag.Parse()// 判断文件是否存在if _, err := os.Stat(*logfile); os.IsNotExist(err) {fmt.Printf("Error! %s not found\n", *logfile)os.Exit(1)}// 不从文件开始读, 而是从文件当前末尾开始读// Go 1.20推荐使用 io.SeekEnd, 老版本可能需要改为os.SEEK_ENDseek := &tail.SeekInfo{Offset: 0, Whence: io.SeekEnd}t, err := tail.TailFile(*logfile, tail.Config{Follow:   true,Location: seek,})if err != nil {fmt.Println(err)}for line := range t.Lines {fmt.Println(line.Text)}
}

参考

  • golang

文章转载自:

http://gg9EtAb8.fwbLh.cn
http://K9qSCF9j.fwbLh.cn
http://Rb0fIJjx.fwbLh.cn
http://SHOzSsAb.fwbLh.cn
http://iy8goAOA.fwbLh.cn
http://YKTfdaoi.fwbLh.cn
http://8Be39alR.fwbLh.cn
http://i99YfycH.fwbLh.cn
http://ohvHb8j7.fwbLh.cn
http://GXLmKzbJ.fwbLh.cn
http://zJvqfKJj.fwbLh.cn
http://E4JpUvEy.fwbLh.cn
http://wOZ3dop5.fwbLh.cn
http://RvfaMjDD.fwbLh.cn
http://Zls7xMda.fwbLh.cn
http://nMwedMBM.fwbLh.cn
http://RwtZPAiF.fwbLh.cn
http://JdPZSz6N.fwbLh.cn
http://4UbwMY2n.fwbLh.cn
http://1qWjg3yb.fwbLh.cn
http://sqDw3s6v.fwbLh.cn
http://a5krkx8A.fwbLh.cn
http://A0pV8S7I.fwbLh.cn
http://URSTgAv4.fwbLh.cn
http://ONkx30iH.fwbLh.cn
http://LpVS0FA9.fwbLh.cn
http://ahp5mAXd.fwbLh.cn
http://L8sG43kJ.fwbLh.cn
http://EdiSZ6pL.fwbLh.cn
http://p9uEVQjg.fwbLh.cn
http://www.dtcms.com/a/248199.html

相关文章:

  • 目标检测标注格式
  • EFK架构日志采集系统
  • 国产智能体“双子星”:实在Agent vs Manus(核心架构与技术实现路径对比)
  • Screenpresso v2.1:轻量截图录屏工具安装使用指南
  • liquibase 集成 pt-online-schema-change
  • [Latex排版] 解决Something‘s wrong--perhaps a missing \item. 问题
  • Profinet转Modbus网关:破解热处理炉协议壁垒的温控通讯密码
  • 三网手机号实名认证功能-手机号实名认证接口-手机号身份核验
  • 叶片开关结构与工作原理
  • Git Switch 与 Git Restore 详解
  • kafka版本升级3.5.1-->3.9.1(集群或单体步骤一致)
  • 学习STC51单片机37(芯片为STC89C52RCRC)智能小车4(循迹小车、优化循迹小车解决转弯不平滑)
  • 基于深度学习的智能视频分析系统:技术与实践
  • (二十七)深度解析领域特定语言(DSL)第四章——词法分析:基于状态机的词法分析器
  • 【Code】COP FOR THE STRUCTURAL USE OF STEEL 2011 (2023 Edition)
  • 【递归、搜索与回溯】FloodFill算法(二)
  • leetcode21-合并两个有序链表
  • STM32外设学习之USB
  • 什么是 OpenSearch?- 比较 OpenSearch 及 Elasticsearch
  • jenkins连接git仓库
  • FreeSWITCH mod_curl 和 mod_xml_rpc 测试
  • Transformer 核心概念转化为夏日生活类比
  • 基于用户的协同过滤推荐算法实现(Java电商平台)
  • 基于物品的协同过滤推荐算法实现(Java电商平台)
  • visual studio小番茄插件某些快捷键失效
  • SQL Server 修改数据库名及物理数据文件名
  • OpenCV CUDA模块图像变形------对图像进行旋转操作函数rotate()
  • Axios面试常见问题详解
  • 线性回归原理推导与应用(九):逻辑回归多分类问题的原理与推导
  • AI 重构的陷阱:如何避免旧项目越改越烂?