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

go 设置滚动日志

方案

通过 log/slog 实现结构化日志生成,这是go1.21中推出的新特性;通过 lumberjack 实现日志文件分割。

示例

package mainimport ("gopkg.in/natefinch/lumberjack.v2""log/slog""os""path/filepath"
)func main() {r := &lumberjack.Logger{Filename:   filepath.Base(os.Args[0]) + ".log",LocalTime:  true,MaxSize:    1,MaxAge:     3,MaxBackups: 5,Compress:   true,}logger := slog.New(slog.NewJSONHandler(r, nil))slog.SetDefault(logger)slog.Info("start app")

参数说明

lumberjack.Logger

type Logger struct {// Filename 是用来写入日志的文件。旋转的日志文件将被保留在同一目录中。// 如果 Filename 为空,它将使用 os.TempDir() 中的 <processname>-lumberjack.log 文件。Filename string `json:"filename" yaml:"filename"`// MaxSize 是日志文件在进行轮转之前的最大大小(以兆字节为单位)。默认为100兆字节。MaxSize int `json:"maxsize" yaml:"maxsize"`// MaxAge 是根据文件名中的时间戳编码来保留旧日志文件的最大天数。请注意,一天定义为24小时,可能由于夏令时、闰秒等原因与日历天数不完全对应。// 默认情况下,不根据年龄删除旧的日志文件。MaxAge int `json:"maxage" yaml:"maxage"`// MaxBackups 是要保留的旧日志文件的最大数量。默认情况下,保留所有旧的日志文件(尽管 MaxAge 可能仍会导致它们被删除)。MaxBackups int `json:"maxbackups" yaml:"maxbackups"`// LocalTime 确定备份文件中时间戳格式化所使用的时间是否为计算机的本地时间。默认情况下,使用 UTC 时间。LocalTime bool `json:"localtime" yaml:"localtime"`// Compress 确定是否使用 gzip 对轮转的日志文件进行压缩。默认情况下,不执行压缩。Compress bool `json:"compress" yaml:"compress"`// 包含过滤或未导出的字段
}

参考

lumberjack package - gopkg.in/natefinch/lumberjack.v2 - Go Packages

相关文章:

go 设置滚动日志

方案 通过 log/slog 实现结构化日志生成&#xff0c;这是go1.21中推出的新特性&#xff1b;通过 lumberjack 实现日志文件分割。 示例 package mainimport ("gopkg.in/natefinch/lumberjack.v2""log/slog""os""path/filepath" )fun…...

Rollup入门学习:前端开发的构建利器

在前端开发领域&#xff0c;构建工具对于优化项目结构和提升代码效率扮演着至关重要的角色。Rollup作为一款轻量级且功能强大的JavaScript模块打包器&#xff0c;近年来备受开发者青睐。本文将带你走进Rollup的世界&#xff0c;帮助你快速入门并掌握其核心用法。 一、Rollup简介…...

游戏寻路之A*算法(GUI演示)

一、A*算法介绍 A*算法是一种路径搜索算法,用于在图形网络中找到最短路径。它结合了Dijkstra算法和启发式搜索的思想,通过综合利用已知的最短路径和估计的最短路径来优化搜索过程。在游戏自动寻路得到广泛应用。 二、A*算法的基本思想 在图形网络中选择一个起点和终点。维护…...

软件工程顶会——ICSE '24 论文清单、摘要

1、A Comprehensive Study of Learning-based Android Malware Detectors under Challenging Environments 近年来&#xff0c;学习型Android恶意软件检测器不断增多。这些检测器可以分为三种类型&#xff1a;基于字符串、基于图像和基于图形。它们大多在理想情况下取得了良好的…...

Vue点击复制到剪切板

一、Vue2写法 安装 &#xff08;官网地址&#xff09; npm install --save vue-clipboard2 使用 //main.js import VueClipboard from vue-clipboard2 Vue.use(VueClipboard)//页面使用 <button type"button"v-clipboard:copy"message"v-clipboard:su…...

链路负载均衡之DNS透明代理

一、DNS透明代理 一般来说&#xff0c;企业的客户端上都只能配置一个运营商的DNS服务器地址&#xff0c;DNS服务器通常会将域名解析成自己所在ISP内的Web服务器地址&#xff0c;这将导致内网用户的上网流量都集中在一个ISP的链路上转发&#xff0c;最终可能会造成链路拥塞&…...

2024大语言模型LLM基础|语义搜索Semantic_Search全解

目录 语义搜索Semantic_Search代码详解 为甚麽用Pinecone做向量索引&#xff1f;优点是什么&#xff1f; 有哪些常见向量索引方法&#xff1f; Pinecone做向量索引怎么用&#xff1f; 向量索引全解&#xff1a;含原理解析&#xff1a; 语义搜索Semantic_Search代码详解 1…...

vue中使用echarts实现人体动态图

最近一直处于开发大屏的项目&#xff0c;在开发中遇到了一个小知识点&#xff0c;在大屏中如何实现人体动态图。然后看了下echarts官方文档&#xff0c;根据文档中的示例调整出来自己想要的效果。 根据文档上发现 series 中 type 类型设置为 象形柱形图&#xff0c;象形柱图是…...

结构化思维助力Prompt创作:专业化技术讲解和实践案例

结构化思维助力Prompt创作&#xff1a;专业化技术讲解和实践案例 最早接触 Prompt engineering 时, 学到的 Prompt 技巧都是: 你是一个 XX 角色… 你是一个有着 X 年经验的 XX 角色… 你会 XX, 不要 YY.. 对于你不会的东西, 不要瞎说!…对比什么技巧都不用, 直接像使用搜索引…...

【0272】postgres内核分配 MyBackendId 实现原理(MyBackendId、MyProc、shmInvalBuffer)(三)

相关文章: 【0255】揭晓pg内核中MyBackendId的分配机制(后端进程Id,BackendId)(一) 【0256】揭晓pg内核中MyBackendId的分配机制(后端进程Id,BackendId)(二) 第一个backend process前,shmInvalBuffer的值情况 (gdb) p *shmInvalBuffer $153 = {minMsgNum =...

AUKFUKF的MATLAB程序,含源码

adaptive UKF与UKF效果对比 只有一个m文件,直接拖到MATLAB上面就能运行并输出结果了 部分结果 程序源码 % adaptive UKF与UKF效果对比 % author:Evand % 作者联系方式:evandjiang@qq.com(除前期达成一致外,付费咨询) % date: 2023-11-07 % Ver1 clear;clc;close all; %%…...

STM32(13)串口

串口的数据帧 1.空闲 2.起始位 3.数据位 4.校验位&#xff08;可有可无&#xff09; 为了验证数据传输是否出错而设立的比特位 1和4传输方式比较常见 校验规则&#xff1a; 根据1的个数&#xff0c;校验位会自己补0或1 5.停止位 例子&#xff1a; 同步通信 异步通信 波特率 …...

Element(Java后端入门篇)

Element&#xff08;Java后端入门篇&#xff09; Element:是饿了么公司前端开发团队提供的一套基于Vue的网站组件库&#xff0c;用于快速构建网页组件&#xff1a;组成网页的部件&#xff0c;例如超链接、按钮、图片、表格等等~ Element快速入门 引入Element的css、js文件和V…...

qt5和gstreamer开发环境安装配置

构建KDE虚拟机环境 1、安装virtualBox 2、导入镜像 配置QtCreator开发环境 https://blog.csdn.net/weixin_45824067/article/details/131970558&#xff08;安装的是qt6&#xff09; https://blog.csdn.net/m0_70849943/article/details/132472950 (安装的qt版本为5.14.2&…...

基于Python3的数据结构与算法 - 10 计数排序

一、问题 对列表进行排序&#xff0c;已知列表中的数范围都在0到100之间。设计时间复杂度为O(n)的算法。 二、解决思路 我们已知数字的范围&#xff0c;那么我们可以将数字的个数得到&#xff1a; 例如&#xff1a;有一个0~5的列表 [1,3,2,4,1,2,3,1,3,5] 则共有0个0&am…...

力扣206反转链表

206.反转链表 力扣题目链接(opens new window) 题意&#xff1a;反转一个单链表。 示例: 输入: 1->2->3->4->5->NULL 输出: 5->4->3->2->1->NULL 1&#xff0c;双指针 2&#xff0c;递归。递归参考双指针更容易写&#xff0c; 为什么不用头插…...

【python实战】--图片创作视频

系列文章目录 文章目录 系列文章目录前言一、VideoWriter_fourcc()常见的编码参数二、使用步骤1.引入库 总结 前言 一、VideoWriter_fourcc()常见的编码参数 cv2.VideoWriter_fourcc(‘M’, ‘P’, ‘4’, ‘V’)MPEG-4编码 .mp4 可指定结果视频的大小cv2.VideoWriter_fourcc…...

数据挖掘实战 —— 抖音用户浏览行为数据分析与挖掘(代码部分)

文章: 数据挖掘实战 —— 抖音用户浏览行为数据分析与挖掘(一) 数据挖掘实战 —— 抖音用户浏览行为数据分析与挖掘(二) 数据挖掘实战 —— 抖音用户浏览行为数据分析与挖掘(总) 代码: 数据挖掘实战 —— 抖音用户浏览行为数据分析与挖掘(代码…...

AWS EKS(AWS云里面的K8S)

问题 初步使用EKS 步骤 安装AWS CLI 第一步是在自己的笔记本电脑上面安装AWS提供的CLI&#xff08;命令行工具&#xff09;&#xff0c;这里就不详细介绍了&#xff0c;都是next的步骤。具体可以参考啊aws cli安装的相关教程网页&#xff0c;具体地址如下&#xff1a; http…...

Azkaban 大数据 任务调度

参考视频&#xff1a;尚硅谷大数据Azkaban 3.x教程&#xff08;全新发布&#xff09;_哔哩哔哩_bilibili Azkaban&#xff1a; 是一个定时、批量工作流任务调度器(工作流程调度&#xff0c;定时调度) 常见的开源调度系统&#xff1a; 简单单一的任务调度&#xff1a; Linux的…...

[特殊字符] 智能合约中的数据是如何在区块链中保持一致的?

&#x1f9e0; 智能合约中的数据是如何在区块链中保持一致的&#xff1f; 为什么所有区块链节点都能得出相同结果&#xff1f;合约调用这么复杂&#xff0c;状态真能保持一致吗&#xff1f;本篇带你从底层视角理解“状态一致性”的真相。 一、智能合约的数据存储在哪里&#xf…...

大数据学习栈记——Neo4j的安装与使用

本文介绍图数据库Neofj的安装与使用&#xff0c;操作系统&#xff1a;Ubuntu24.04&#xff0c;Neofj版本&#xff1a;2025.04.0。 Apt安装 Neofj可以进行官网安装&#xff1a;Neo4j Deployment Center - Graph Database & Analytics 我这里安装是添加软件源的方法 最新版…...

多模态2025:技术路线“神仙打架”,视频生成冲上云霄

文&#xff5c;魏琳华 编&#xff5c;王一粟 一场大会&#xff0c;聚集了中国多模态大模型的“半壁江山”。 智源大会2025为期两天的论坛中&#xff0c;汇集了学界、创业公司和大厂等三方的热门选手&#xff0c;关于多模态的集中讨论达到了前所未有的热度。其中&#xff0c;…...

shell脚本--常见案例

1、自动备份文件或目录 2、批量重命名文件 3、查找并删除指定名称的文件&#xff1a; 4、批量删除文件 5、查找并替换文件内容 6、批量创建文件 7、创建文件夹并移动文件 8、在文件夹中查找文件...

UE5 学习系列(三)创建和移动物体

这篇博客是该系列的第三篇&#xff0c;是在之前两篇博客的基础上展开&#xff0c;主要介绍如何在操作界面中创建和拖动物体&#xff0c;这篇博客跟随的视频链接如下&#xff1a; B 站视频&#xff1a;s03-创建和移动物体 如果你不打算开之前的博客并且对UE5 比较熟的话按照以…...

学校招生小程序源码介绍

基于ThinkPHPFastAdminUniApp开发的学校招生小程序源码&#xff0c;专为学校招生场景量身打造&#xff0c;功能实用且操作便捷。 从技术架构来看&#xff0c;ThinkPHP提供稳定可靠的后台服务&#xff0c;FastAdmin加速开发流程&#xff0c;UniApp则保障小程序在多端有良好的兼…...

vue3 字体颜色设置的多种方式

在Vue 3中设置字体颜色可以通过多种方式实现&#xff0c;这取决于你是想在组件内部直接设置&#xff0c;还是在CSS/SCSS/LESS等样式文件中定义。以下是几种常见的方法&#xff1a; 1. 内联样式 你可以直接在模板中使用style绑定来设置字体颜色。 <template><div :s…...

Nuxt.js 中的路由配置详解

Nuxt.js 通过其内置的路由系统简化了应用的路由配置&#xff0c;使得开发者可以轻松地管理页面导航和 URL 结构。路由配置主要涉及页面组件的组织、动态路由的设置以及路由元信息的配置。 自动路由生成 Nuxt.js 会根据 pages 目录下的文件结构自动生成路由配置。每个文件都会对…...

ios苹果系统,js 滑动屏幕、锚定无效

现象&#xff1a;window.addEventListener监听touch无效&#xff0c;划不动屏幕&#xff0c;但是代码逻辑都有执行到。 scrollIntoView也无效。 原因&#xff1a;这是因为 iOS 的触摸事件处理机制和 touch-action: none 的设置有关。ios有太多得交互动作&#xff0c;从而会影响…...

精益数据分析(97/126):邮件营销与用户参与度的关键指标优化指南

精益数据分析&#xff08;97/126&#xff09;&#xff1a;邮件营销与用户参与度的关键指标优化指南 在数字化营销时代&#xff0c;邮件列表效度、用户参与度和网站性能等指标往往决定着创业公司的增长成败。今天&#xff0c;我们将深入解析邮件打开率、网站可用性、页面参与时…...