logrus 安装 使用

08 rk3568 模拟smi mdio RTL8367RB(一) 前提需求:硬件连接普通gpio ,RTL8367RB需要mdio通信 使用的gpio是 MDC GPIO3_B3 (SMI时钟线) MDIO GPIO3_B4 (SMI数据线) 2. 数据结构与枚举 3.1 GPIO 初始化(地址映射) 内核无法直接访问物理地址,通过ioremap将 GPIO 控制器的物理地址映射为虚拟地址,后续通过虚拟地址操作 GPIO 寄存器。 3.2 设置引脚方向 3.3 设置电平 3.4 读取电平 6. SMI 总线时序实现 SMI 总线通信依赖严格的时序(起始信号、 阅读详情

 

安装

logrus
go get github.com/sirupsen/logrus

无法访问 golang 所以就 先 clone github.com/golang的源码 然后生成
cd $GOPATH/src/golang.org/x
git clone https://github.com/golang/crypto.git
go get -u golang.org/x/crypto/ssh/terminal


git clone https://github.com/golang/sys.git

go get -u golang.org/x/sys/unix

 

使用

package main

import (
	log "github.com/sirupsen/logrus"
	"time"
)

type Animal struct {
	Name string
	age int
}

func main() {
	//log.SetFormatter(&log.JSONFormatter{})
	a := Animal{"dog", 22}
	log.SetFormatter(&log.TextFormatter{
		FullTimestamp:true})
	log.WithFields(log.Fields{
		"event": "ne",
		"topic": "title",
		"key": "my key",
	}).Info("hello", a)
	
	log.Error("hello world")
	for {
		time.Sleep(time.Second)
		log.Printf("i am ok %s", "dock")
	}
	log.Fatal("kill ")
}

 

写在一个文件里

func SetLogFile() {
	file := time.Now().Format("20060102") + ".txt"
	logFile, err := os.OpenFile(file, os.O_RDWR|os.O_CREATE|os.O_APPEND, 0766)
	if nil != err {
		panic(err)
	}
	log.SetOutput(logFile)
}

 

自动拆分日志文件 

先安装拆分日志文件的2份源码

go get github.com/lestrrat-go/file-rotatelogs
go get github.com/rifflock/lfshook

使用示例 

package main

import (
	log "github.com/sirupsen/logrus"
	"github.com/lestrrat-go/file-rotatelogs"
    "github.com/rifflock/lfshook"
    "time"
    "os"
    "github.com/pkg/errors"
    "path"
)

func main() {
    // 24小时一个日志文件,最多存365天的日志文件。 再多了就删掉
	ConfigLocalFilesystemLogger("log", "lg", time.Hour*24*365, time.Hour*24)
	
	for {
		time.Sleep(time.Second*3)
		log.Info("hello ")
	}
}

// config logrus log to local filesystem, with file rotation
func ConfigLocalFilesystemLogger(logPath string, logFileName string, maxAge time.Duration, rotationTime time.Duration) {
    baseLogPaht := path.Join(logPath, logFileName)
    writer, err := rotatelogs.New(
        baseLogPaht+".%Y%m%d%H%M",
        rotatelogs.WithLinkName(baseLogPaht), // 生成软链,指向最新日志文件

        rotatelogs.WithMaxAge(maxAge),        // 文件最大保存时间
        // rotatelogs.WithRotationCount(365),  // 最多存365个文件

        rotatelogs.WithRotationTime(rotationTime), // 日志切割时间间隔
    )
    if err != nil {
        log.Errorf("config local file system logger error. %+v", errors.WithStack(err))
    }
    lfHook := lfshook.NewHook(lfshook.WriterMap{
        log.DebugLevel: writer, // 为不同级别设置不同的输出目的
        log.InfoLevel:  writer,
        log.WarnLevel:  writer,
        log.ErrorLevel: writer,
        log.FatalLevel: writer,
        log.PanicLevel: writer,
    }, &log.TextFormatter{})
    log.AddHook(lfHook)
}

 WithRotationTime 设置为1分钟时,生成的日志文件如下

~/gol/log $ ls
lg               lg.201812041357  lg.201812041410  lg.201812041423
lg.201812041344  lg.201812041358  lg.201812041411  lg.201812041424
lg.201812041346  lg.201812041359  lg.201812041412  lg.201812041425
lg.201812041347  lg.201812041400  lg.201812041413  lg.201812041426
lg.201812041348  lg.201812041401  lg.201812041414  lg.201812041427
lg.201812041349  lg.201812041402  lg.201812041415  lg.201812041428
lg.201812041350  lg.201812041403  lg.201812041416  lg.201812041429
lg.201812041351  lg.201812041404  lg.201812041417  lg.201812041430
lg.201812041352  lg.201812041405  lg.201812041418  lg.201812041431
lg.201812041353  lg.201812041406  lg.201812041419  lg.201812041432
lg.201812041354  lg.201812041407  lg.201812041420  lg.201812041433
lg.201812041355  lg.201812041408  lg.201812041421  lg.201812041434
lg.201812041356  lg.201812041409  lg.201812041422  lg.201812041435

 

Android 9.0 延时开机动画解决首次开机黑屏和去掉android正在启动的提示框 在9.0的系统产品rom定制化开发中,在一些产品中会出现在首次开机的时候,由于在开机动画播放完以后会出现几秒短暂的黑屏情况,然后进入默认Launcher,这在产品体验上 也是感觉到有点差,所以会要求在去掉这个首次开机黑屏的效果,和在启动过程中的 android is starting这个提示框的这些效果优化,接下来就分析下相关功能, 然后实现这个功能的开发 阅读详情

相关推荐

避开SM30维护视图的坑:自动更新字段+日志记录的5个关键配置步骤

本文深入解析了SAP ABAP开发中SM30维护视图的深度定制,聚焦于实现自动更新字段与日志记录功能。文章详细阐述了从SE54配置起点到核心编码的5个关键步骤,重点讲解了如何利用事件驱动模型(如05创建事件和01保存前事件)安全操作动态数据结构,并提供了避免常见陷阱的实用技巧,帮助开发者构建稳定可靠的自动化维护机制。

plant的博客 623

golang logrus日志框架配置标准输出和文件输出,文件按天切割

import (rotatelogs "github.com/lestrrat/go-file-rotatelogs" "io" "github.com/sirupsen/logrus" ) ////代码示例 logFilePath := fmt.Sprintf("%s/%s/", logFileBasePath, podName) fileStr := strings.Trim(logFilePath, " \r\n") var logPath string index := s

plgy_Y的博客 1606

描述符链表(Descriptor Chain)是什么?

描述符链表是硬件加速数据传输的核心数据结构,通过链式描述符(包含地址、长度、控制标志等)实现DMA自动批量处理,显著降低CPU负载。其工作原理为:CPU初始化链表后,硬件按序处理每个描述符,完成自动跳转与中断通知。在网卡收包、NVMe存储等场景中应用广泛,优势包括批处理、低延迟和灵活调度。需注意内存对齐、缓存一致性等实现细节,优化手段包括预分配描述符池、环形缓冲区等。该技术是网络/存储领域提升吞吐量的关键方案。

guigenyi的专栏 777

Logrus 日志框架——自定义日志颜色

Logrus 日志框架——自定义日志颜色

赵士杰——成功并非一蹴而就,而是在持之以恒的努力中逐渐实现。 1929

操作系統恐龍書第十版課後答案CH10

課後

apple_72111807的博客 4046

概述DeepLab系列(deeplab v1, deeplab v2, deeplab v3, deeplab v3+)

前言:图像分割是指像素级别的图像识别,即标注出图像中每个像素所属的对象类别。 语义分割更注重类别之间的区分,而实例分割更注重个体之间的区别。 DeepLab是由Google团队提出的一系列图像分割算法。 DeepLab v1 (2014年) Paper (ICLR 2015) Code 创新点: 空洞卷积(Atrous Conv); <解决编码过程中信号不断被下采样,细节丢失的问题> 全连接条件随机场(Fully-connected Conditional Random Field)。

ZSH12345678900的博客 5528

logrus在windows的terminal下彩色显示

go version 1.8.3 windows/amd64 logrus version 1.0.2 logrus在windows的terminal下彩色显示

先拙的博客 3505

手把手教你学simulink(90.1)--直流电动机实例:基于Simulink的基本模型的直流电动机(DC Motor)建模

直流电动机(DC Motor)因其结构简单、控制方便和良好的调速性能,广泛应用于各种工业自动化、机器人技术、家用电器以及航空航天等领域。为了更好地理解和应用直流电动机的工作原理及其控制系统,本项目旨在通过Simulink对直流电动机进行基本模型的建模与仿真。

MHD0815的博客 439

golang日志框架之logrus

本文转载自姜总 golang日志库 golang标准库的日志框架非常简单,仅仅提供了print,panic和fatal三个函数对于更精细的日志级别、日志文件分割以及日志分发等方面并没有提供支持。所以催生了很多第三方的日志库,但是在golang的世界里,没有一个日志库像slf4j那样在Java中具有绝对统治地位。golang中,流行的日志框架包括logrus、zap、zerolog、seelog...

jacklife的博客 8万+

SAP PI 系统复制,不只是把数据库拷过去,而是一次集成拓扑的重新落位

文章摘要:SAP PI/PO系统刷新生产数据到测试环境时,标准系统复制无法自动处理集成中枢特有的环境绑定问题。系统复制后,PI仍保留生产环境的连接配置,可能导致测试系统向生产环境发送消息。SAP提供的CTC模板可自动化部分后续配置,但无法替代人工对接口风险的全面评估。关键在于系统复制前绘制接口风险地图,复制后进行分层次验证:禁用生产连接、重定向测试接口、复核安全配置,并通过代表性链路测试确保系统行为符合预期。这需要结合SAP标准流程与业务语义判断,形成完整的治理闭环。

2007 年 ~ 2025 年,深耕 SAP 技术 18 年 84

Opencv项目实战:20 单手识别数字0到5

今天要做的是单手识别数字0到5,通过在窗口展示,实时的展示相应的图片以及文字。在这里,我提供一下识别更多数字的方法(0-10)。首先最简便的是双手识别,完全不用更改代码,把图片处理好就行了;其次,就是按照最上面的那张图片,参数figureup是一个长度为5的列表[0,0,0,0,0],你可以参照着手势将其打印出来,然后将其用if条件判断。当然,在我们这边最常见的还是华北手势表示数字,大家按照自己的习惯来就行。

m0_62919535的博客 2877

golang logrus日志按照日期切割

golang web, gin + gorm 日志分割 logrus + go-file-rotatelogs + lfshook

weixin_43505078的博客 3484

计算机控制技术及应用

《计算机控制技术及应用》通过总结作者的科研成果和吸收国内外的先进理论、方法和技术,以计算机控制系统的网络化、开放化、智能化和集成化发展趋势为主线索,主要介绍计算机控制系统的基本概念和计算机控制系统的典型形式,计算机控制系统的数学描述与基本分析方法,以及数字PID控制器、最少拍控制系统、达林算法、状态变量设计法等设计方法及其各种改进算法。重点突出计算机控制系统输入输出通道接口的设计方法和典型控制系统的设计案例与实现方法等。

Logrus 安装与配置指南

### 基础介绍 Logrus 是一个用于 Go 语言的结构化日志库,完全兼容 Go 标准库的日志接口。它提供了丰富的日志记录功能,支持文本和 JSON 格式的日志输出,并且具有高度的可扩展性。Logrus 目前处于维护模式,主要进行安全性和性能优化,不再引入新功能。 ### 主要编程语言 Logrus 主要使用 Go 语言编写,适用于 Go 语言的开发环境。 ## 2. 项目使用的关键技术和...

gitblog_09128的博客 558

android 蓝牙通讯demo

android 下蓝牙通讯demo,实现了发现蓝牙,使能蓝牙,通过蓝牙发送消息。

复分析 阿尔福斯(Ahlfors) 第三版答案 英文

答案分为十章,有部分习题没有答案,全英文复分析阿尔福斯(Ahlfors) 第三版答案

golang 安装logrus

谷歌,百度了半天,没几个是能安装logrus,不是下载超时,就是失败,无语了 下载logrus 方法一: go get github.com/sirupsen/logrus 国内连不上,一直到最后是timeout,要是你能下载可以直接下 方法二: 直接去github上下载logrus,地址:https://github.com/sirupsen/logrus/releas...

发呆中! 1763

TMS_WebGMaps_1.9.8.0_Full_Source

TMS_WebGMaps_1.9.8.0_Full_Source 全源码 delphi cbuilder

golang日志库logrus的安装和使用

一、安装logrus 执行如下命令,即可按照logrus go get github.com/sirupsen/logrus 如果无法访问 golang ,那么可以先 clone github.com/golang的源码,然后生成 cd $GOPATH/src/golang.org/x git clone https://github.com/golang/crypto.git go ...

WorldMvp的专栏 3031

使用 go get 安装 golang 官方包(logrus)拉取失败

1 报错信息 使用 go get 安装 golang 官方包(logrus)拉取失败,拉取命令: go get -u github.com/sirupsen/logrus 报出如下问题: unrecognized import path "golang.org/x/sys/unix": https fetch: Get "https://golang.org/x/sys/unix?go-get=1": dial tcp 216.239.37.1:443: i/o timeout 2 解决方式.

syluofeng的专栏 1526

CentOS logrus和file-rotatelogs的安装

git clone https://github.com/sirupsen/logrus.git $GOPATH/src/github.com/sirupsen/logrus git clone https://github.com/lestrrat-go/file-rotatelogs.git $GOPATH/src/github.com/lestrrat-go/file-rotatelog...

ZRXSLYG的博客 1551

Logrus-Logstash-Hook 常见问题解决方案

Logrus-Logstash-Hook 常见问题解决方案 项目基础介绍 Logrus-Logstash-Hook 是一个开源项目,主要用于将 Logrus 日志发送到 Logstash 的钩子。Logrus 是一个流行的日志库,而 Logstash 是一款强大的数据处理工具。本项目通过提供一个钩子,使得用户可以轻松地将 Logrus 的日志数据发送到 Logstash 进行进一步处理。项目主要使...

gitblog_00338的博客 622

Logrus Hook for ElasticSearch 常见问题解决方案

Logrus Hook for ElasticSearch 常见问题解决方案 Logrus Hook for ElasticSearch 是一个开源项目,它为 Logrus 日志库提供了一个 Hook,可以将日志数据发送到 ElasticSearch。该项目主要使用 Go 编程语言开发。 新手常见问题及解决步骤 问题一:如何安装和引入 Logrus Hook for ElasticSearch 问...

gitblog_01081的博客 1121

uber-go/zap & sirupsen/logrus

使用Zap如果你需要最高的性能,且应用的高吞吐量对结构化日志和最小化开销有严格要求。 使用 Logrus 如果你更注重易用性和灵活性,应用的性能不是首要考虑因素,或者需要与各种日志后端轻松集成。

GitHub个人仓库地址:https://github.com/feiyuluoye ; 个人塔罗牌占卜平台:http://118.126.82.12:8080/ ; 欢迎广大Coding友共同交流讨论。 1548

Logrus Prefixed Log Formatter 使用教程

Logrus Prefixed Log Formatter 使用教程 1. 项目介绍 Logrus Prefixed Log Formatter 是一个基于 Logrus 的日志格式化器,主要在原始 Logrus 的 TextFormatter 基础上进行了一些改进。它支持日志条目的前缀(例如消息源),并且提供了自定义颜色主题的功能。当终端不支持 TTY 时,输出格式与 logfmt 格式兼容。 ...

gitblog_00095的博客 441

使用指南:logrus-logstash-hook

使用指南:logrus-logstash-hook 项目介绍 logrus-logstash-hook 是一个专为 Golang 设计的中间件库,它提供了将 Logrus 日志轻松发送到 Logstash 的功能,支持TCP和UDP两种协议。此项目使得开发者能够无缝集成日志管理和分析系统,通过自定义的格式化器,确保日志以结构化的JSON格式到达Logstash,便于后续的数据处理和可视化。 项目快...

gitblog_00171的博客 731

Go第三方日志库logrus

目录 一、logrus介绍 二、安装 三、基本示例 四、进阶示例 五、日志级别 5.1 设置日志级别 六、字段 七、默认字段 八、日志条目 九、Hooks 十...

weixin_30470643的博客 1001

Go学习第十八章——Gin日志与第三方工具Logrus

Go web框架——Gin日志与第三方工具Logrus

Hai_Helloyou的博客 3941

Logrus Sentry 使用教程

Logrus Sentry 使用教程 项目介绍 Logrus Sentry 是一个将 Logrus 日志库与 Sentry 错误跟踪服务集成的开源项目。通过这个集成,开发者可以方便地将应用程序的日志发送到 Sentry 进行监控和分析。Logrus 是一个结构化日志库,而 Sentry 则是一个实时事件日志和聚合平台。 项目快速启动 安装依赖 首先,确保你已经安装了 Go 语言环境,然后通过以下命...

gitblog_00655的博客 335
上一篇: [Golang] GoConvey测试框架使用指南 转发
下一篇: ubuntu 安装, 使用 redis
乃不知有汉
博客等级 码龄17年 96粉丝 73原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值