go语言log包

Go语言学习之log包(The way to go) 生命不止,继续go go go!!!讲真,go为我们提供的log package的功能挺简单的,但是常规的功能够用了,我们就进行简简单单的介绍。之后,会自己封装自己log,比如用来记录我们的http日志等。import( “log” ) Package log implements a simple logging package. It defines a type, Logger, with 阅读详情

log包基本用法

func main() {
	log.Println("这是一条很普通的日志.")
	v := "很普通的"
	log.Printf("zheshi一条%srizhi", v)
	log.Fatalln("这条会触发fatal的日志") //这条会在写入日志信息后调用os.exit()
	log.Panicln("这条会触发panic日志")  //panic系列函数会在写入日志信息后panic
}
输出结果
C:\Users\34826\AppData\Local\Temp\___go_build_main_go__1_.exe #gosetup
2021/03/26 10:49:33 这是一条很普通的日志.
2021/03/26 10:49:33 zheshi一条很普通的rizhi
2021/03/26 10:49:33 这条会触发fatal的日志

说明一下这里的最后一条panic语句并不会执行.因为fatal执行的时候调用了os.exit函数,直接就中断了main函数的向下执行.

flag输出选项

const (
	Ldate         = 1 << iota     //日期
	Ltime                         //时间
	Lmicroseconds                 //微秒级别时间
	Llogfile                      //文件路径+行号
	Lshortfile                    //文件名+行号
	LUTC                          //使用UTC
	LstdFlags     = Ldate | Ltime //标准logger的初始值
)

func main() {
	log.SetFlags(log.Llongfile | log.Lmicroseconds | log.Ldate) //记录日志之前需要先设置一下日志输出选项
	log.Println("这是一条普通的日志.")                                   //输出结果 为文件名+文件位置+输出结果
}

输出结果
C:\Users\34826\AppData\Local\Temp\___go_build_main_go__1_.exe #gosetup
2021/03/26 10:58:07.012508 D:/Go/Go/src/code.oldboy.com/studygolang/05lesson5/xu
eshengguanlixit/main.go:26: 这是一条普通的日志.

添加日志的前缀信息,并且将日志写入到文件中

func main() {
	logFile, err := os.OpenFile("./xx.log", os.O_CREATE|os.O_WRONLY|os.O_APPEND, 0644)
	if err != nil {
		fmt.Println("open log file failed, err:", err)
		return
	} //这里logfile创建生成返回两个参数,1是生成成功,er是返回错误值.
	log.SetOutput(logFile)
	log.SetFlags(log.Llongfile | log.Lmicroseconds | log.Ldate)
	log.Println("这是一条很普通的日志。")
	log.SetPrefix("[小王子]")
	log.Println("这是一条很普通的日志。")
}
输出结果:
./xx.txt显示
2021/03/26 11:13:08.851684 D:/Go/Go/src/code.oldboy.com/studygolang/05lesson5/xueshengguanlixit/main.go:35: 这是一条普通的日志.
[error]2021/03/26 11:13:08.868639 D:/Go/Go/src/code.oldboy.com/studygolang/05lesson5/xueshengguanlixit/main.go:37: 这条日志贼普通...

通常在使用标准log包的时候直接将初始化信息放到init初始化函数中

func init() {
	logFile, err := os.OpenFile("./xx.log", os.O_CREATE|os.O_WRONLY|os.O_APPEND, 0644)
	if err != nil {
		fmt.Println("open log file failed, err:", err)
		return
	}
	log.SetOutput(logFile)
	log.SetFlags(log.Llongfile | log.Lmicroseconds | log.Ldate)
}
初始化一次,生成必要的信息.之后只要想指定文件写入日志即可.

自定义日志

const (
	Ldate         = 1 << iota     //日期
	Ltime                         //时间
	Lmicroseconds                 //微秒级别时间
	Llogfile                      //文件路径+行号
	Lshortfile                    //文件名+行号
	LUTC                          //使用UTC
	LstdFlags     = Ldate | Ltime //标准logger的初始值
)

func main() {
	logfile, err := os.OpenFile("xx.txt", os.O_CREATE|os.O_APPEND|os.O_WRONLY, 0644)
	if err != nil {
		log.Fatalln("open log file filed ,err : ", err)
		return
	}
	loger := log.New(logfile, "[error]", log.Lshortfile|log.Ldate|log.Ltime)  //设置日志格式,1,输出位置,可以是文件,可以是标准输出,2,前缀内容,例如错误等级.报警等级等,
	//3日志构成,时间,日志路径,执行文件名称,行号,日志内容以等信息.
	loger.Println("这是一条自定义类型的日志")
}

输出结果
xx.txt文件
2021/03/26 11:13:08.851684 D:/Go/Go/src/code.oldboy.com/studygolang/05lesson5/xueshengguanlixit/main.go:35: 这是一条普通的日志.
[error]2021/03/26 11:13:08.868639 D:/Go/Go/src/code.oldboy.com/studygolang/05lesson5/xueshengguanlixit/main.go:37: 这条日志贼普通...
error2021/03/26 11:56:18 main.go:34: 这是一条自定义类型的日志

 

曙光服务器RAID配置避坑指南:MegaRAID SAS 9361-8i实战(含Foreign状态处理) 本文详细解析了曙光服务器搭配MegaRAID SAS 9361-8i控制器的RAID配置全流程,包括RAID0和RAID5的创建、Foreign状态处理及性能优化策略。特别针对磁盘迁移中的Foreign状态问题,提供了系统化的解决方案和高级恢复技巧,助力企业级IT运维提升存储配置的稳定性和可靠性。 阅读详情

相关推荐

海思Hi3516CV610开发实战:在Ubuntu 22.04上从零构建嵌入式Linux开发环境

本文详细介绍了在Ubuntu 22.04上为海思Hi3516CV610开发板搭建嵌入式Linux开发环境的完整流程。从虚拟机配置、系统安装到基础环境设置,提供了实用技巧和常见问题解决方案,帮助开发者高效构建适用于智能视觉处理的开发环境。

weixin_29197699的博客 510

Go语言log日志包详解及使用

前言 在计算机世界里,日志文件记录了发生在操作系统或其他软件运行时的事件或状态。技术人员可以通过日志记录进而判断系统的运行状态,寻找导致系统出错、崩溃的成因等。这是我们分析程序问题常用的手段。在研究log日志文件之前,先来看看日志是什么。 Centos 7系统里/var/log /var目录是所有服务的登录的文件或错误信息文件(LOG FILES)都在/var/log下,此外,一些数据库如MySQ...

chen1415886044的博客 5514

反激电源RCD尖峰吸收电路的原理以及调试

反激电源RCD尖峰吸收电路的原理以及调试

mnmmnmn的博客 9249

一、Go基础知识34、log详解:使用Go语言的`log`包进行日志记录

Go:log详解:使用Go语言的`log`包进行日志记录

风不归的乐园 2197

Unity 接入 Steam 平台

Unity 接入 steam sdk 的登录和应用内购买功能

MarinaTsang的博客 3902

数字IC笔记-低功耗技术

传统的降低Power的方法主要有: 1.门控时钟技术(clock gating) 2.多阈值电压技术(MultiShreshold) 3.动态电压频率调节技术(DVFS) 目前有以下几种低功耗技术: 1.多电压技术(Multi-Voltage) 2.MTCOMS Power Gating 技术(多阈值功耗控制技术),比如基带部分中的2G、3G、CDMA、LTE等通过awake—>sleep—>awake的方式间歇式的打开或关断其电源,power gating 可以完全关掉dynamic的pow

sinat_41774721的博客 1932

go语言中的log 包详解

log包默认将日志输出到标准错误流(os.Stderr),但是可以通过方法自定义输出位置。可以将日志输出到文件、网络或其他符合io.Writer接口的目标。log包允许自定义日志的前缀和格式,帮助识别日志的来源或类型。使用方法可以设置日志的前缀,使用可以控制日志的标记。log.SetPrefix("INFO: ") // 设置日志前缀log.SetFlags(log.Ldate | log.Ltime | log.Lshortfile) // 设置日志标记使用log.New。

jkzyx123的博客 1554

数字化转型是什么?核心又是什么呢?

01到底什么是数字化转型? 这时候你或许要问笔者了,既然你说使用新兴技术不是数字化转型,那使用新的商业模式总该是数字化转型了吧?你比如阿里巴巴,作为我们中国人最熟悉的开展电子商务的公司,它可以说是新的商业模式最大的开创者了:阿里巴巴是世界上最大的零售商,却没有任何一家实体店和任何库存;再比如优步(Uber),我们非常熟悉的一个线上打车平台,它可以算是世界上最大的出租车公司了,但是它不拥有一辆出租车。还有近些年来,我们经常使用的的旅游房屋租赁社区爱彼迎(Airbnb),它可以为消费者提供多样的住宿信息..

weixin_58342023的博客 4043

golang日志库使用与对比

1、log简介 golang内置了log包,实现简单的日志服务。通过调用log包的函数,可以实现简单的日志打印功能。2、log使用 log包中有3个系列的日志打印函数,分别print系列、panic系列、fatal系列。函数系列 作用 print 单纯打印日志 panic 打印日志,抛出panic异常 fatal 打印日志,强制结束程序(os.Exit(1)),defer函数不会执行 2.1 简单示例 func main() { defer fmt.Println(“panic退出前处理”) log.Pri

S_ZaiJiangHu的博客 6951

科研党必备:用MATLAB批量处理.mat文件数据的3种高效方法

本文为科研人员提供了使用MATLAB批量处理.mat文件数据的三种高效方法,涵盖智能数据加载、专业可视化与自动化报告生成。通过构建自动化框架、多维度数据画图策略及批量处理流程,帮助用户显著提升数据处理效率与图表专业性,解决海量实验数据的管理与分析难题。

weixin_29089057的博客 71

板蓝根挥发油微胶囊化技术及其在抗菌织物整理中的应用研究

微胶囊技术是一种通过成膜材料将具有反应活性或挥发性的液体或固体包封成微小颗粒的技术。该技术因其优异的缓释保护和物态改变性能,已在医药、食品、化妆品等多个领域得到广泛应用。本研究采用复凝聚法制备板蓝根挥发油的微胶囊,利用明胶和阿拉伯胶作为壁材,旨在提升其稳定性和抗菌性能。

qq_62634009的博客 584

Go语言学习笔记—golang标准库log包

golang内置了log包,实现简单的日志服务。通过调用log包的函数,可以实现简单的日志打印功能。

qq_39280718的博客 4246

【网络安全 | 渗透工具】Hydra安装使用详细教程

Hydra,也称九头蛇,是一款非常强大的暴力破解工具(密码能否被破解关键在于字典是否足够强大),支持多种服务协议的账号和密码进行爆破,包括Web登录、数据库、SSH、FTP等服务,支持Linux、Windows、Mac平台安装。该工具支持以下协议的爆破:Hydra在kali中自带,这里介绍windows下的安装方法。zip下载地址:https://gitcode.com/maaaaz/thc-hydra-windows/tree/master下载完成后解压: 再将thc-hydra-windows-mast

等风来 9200

源码学习 go 语言的 log 包

源码学习 go 语言的 log 包日志的重要性当一个程序出了问题时,不同的人会有不同反应。有的人抓耳挠腮一脸茫然,有的人开始人肉跟踪代码试图找出破绽,还有的人已经开始准备在程序里加 print 了。Print 是个好东西,它几乎可以让我们像 debugger 那样跟踪查看代码执行到某行时变量的值。但是当代码跑到生产环境后,这种做法就歇菜了。生产环境要比本地复杂地多,有些问题不可重现,而且我们根本不可

不要踩坏我的圆 515

ET2012新版免狗免安装绿色软件

ET2012新版免狗免安祖昂绿色软件。,新界面,新视觉,

C# WinForm 基于DirectShow.dll编写的程序,可边预览边保存视频,音频和图片

基于微软的DirectShow.dll的二次开发1.自动识别连接的摄像头跟麦克风且可以对其进行选择(默认选中第一个)2.可录制wmv和avi两种格式的视频并且都带有音频,avi可以录制的分辨率和帧数进行选择,wmv默认进行了淸晰度优化如不喜欢可去除代码中有相关提示3.可在预览点开之后进行拍照,也可边录制视频边拍照4.添加了视频和音频的压缩功能(酌情使用)这次二次开发发现C#对DirectShow的相关信息太少,这次做完也不敢藏私共享出来,还望大家指正

25. Go语言标准库之log包

前言 无论是软件开发的调试阶段还是软件上线之后的运行阶段,日志一直都是非常重要的一个环节,我们也应该养成在程序中记录日志的好习惯。 Go语言内置的log包实现了简单的日志服务。主要介绍标准库log的基本使用。 25.1 使用Logger log包定义了Logger类型,该类型提供了一些格式化输出的方法。本包也提供了一个预定义的“标准”logger,可以通过调用函数Print系列(Print|Printf|Println)、Fatal系列(Fatal|Fatalf|Fatalln)、和Panic系列(Pa

小六 375

Probability and Statistics - 4th edition

Probability and Statistics - 4th edition

深入浅出:Go语言中使用log包记录应用程序日志

日志是程序运行过程中产生的信息记录,通常用于描述发生了什么事件以及这些事件的时间戳。通过分析日志,我们可以了解系统的健康状态、性能瓶颈或潜在错误。日志还可以帮助我们回溯问题发生的上下文环境,从而加快故障排除的速度。通过本文的学习,你应该掌握了Go语言中log包的核心概念及其应用场景,包括创建和配置logger、设置日志前缀和标志、记录不同级别的日志、输出日志到文件以及高级特性的使用等方面的知识。无论是构建小型命令行工具还是大型Web服务,良好的日志实践都将为你编写健壮、可维护的代码奠定坚实的基础。

软件架构师笔记 935

go语言标准库(包) log 日志包文档

Package log import “log” log包实现了简单的日志记录,它定义了Logger类型,其中包含格式化输出的方法。 它还有一个预定义的“标准”Logger,可以通过辅助函数Print[f|ln],Fatal[f|ln]和Panic[f|ln]访问,它们比手动创建Logger更容易使用(Logger你可以理解为"日志记录器")。该记录器写入标准错误(stderr)并打印每个记录消息...

可爱的猪窝 1508

go语言的魔幻旅程21-log包

亡羊补牢,为时未晚 不知从哪里曾经听过一句话,程序员的日常工作不是在修bug,就是在创造bug的路上。衡量一个程序员的功力如何,不仅要看他掌握的知识的广度和深度,最重要的是要看他发现问题、定位问题、解决问题的效率。一般作坊式公司的程序员群体,因为技术实力的限制,通常一个项目主要是以功能数据流跑通为主,至于一些细节性的东西,通常关注的并不多,如果项目出了问题,他们的第一反应是本地浮现问题,然后开启debug模式,不要问为什么不看日志,理由是:开发的过程中压根就没有在代码中打日志,出了问题只能靠猜和蒙。 go语

weixin_47978762的博客 207

go语言log包的学习(log,Logger)

go语言log包的学习(log,Logger) 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40

Jaylon Wang的专栏 2538

在 Go 语言中使用 Log 包

Linux 在许多方面相对于 Windows 来说都是独特的,在 Linux 中编写程序也不例外。标准输出,标准 err 和 null devices 的使用不仅是一个好主意,也是一个原则。如果您的程序将记录日志信息,则最好遵循目标约定。这样,您的程序将兼容所有 Mac/Linux 工具和托管环境。 Go 在标准库中有一个 log 包和 logger 类型。使用 log 包将为您提供成为优秀公民...

ytd7777的专栏 850

在 Go 语言中使用 Log 包--转自GCTT

Linux 在许多方面相对于 Windows 来说都是独特的,在 Linux 中编写程序也不例外。标准输出,标准 err 和 null devices 的使用不仅是一个好主意,也是一个原则。如果您的程序将记录日志信息,则最好遵循目标约定。这样,您的程序将兼容所有 Mac/Linux 工具和托管环境。 Go 在标准库中有一个 log 包和 logger 类型。使用 log 包将为您提供成为优秀...

weixin_33895475的博客 105

go语言学习------Go 记录日志——log包

Go 记录日志——log包 吃一堑消化不良 · 2016-12-15 21:00:03 · 2161 次点击 · 预计阅读时间 2 分钟 · 3天之前 开始浏览     这是一个创建于 2016-12-15 21:00:03 的文章,其中的信息可能已经有所发展或是发生改变。         Golang's log模块主要提供了3类接口。分别是 “Print 、Panic 、

chen 1446

go语言github.com/labstack/gommon/log包改造,优化日志输出

go语言github.com/labstack/gommon/log包改造,优化日志输出

weixin_43874274的博客 314

Go语言标准库之log包

用来作日志log输出的, 比较易懂。 今天周六啊,在公司加班学习一下呀。 package main import ( "log" ) func init() { log.SetPrefix("TRACE: ") log.SetFlags(log.Ldate | log.Lmicroseconds | log.Llongfile) } fu...

weixin_34290000的博客 108

go语言log包学习

基本log包学习: package main //参考网址:https://studygolang.com/pkgdoc //logger:对象:活动状态的记录日志的对象 作用:生成一行行的输出写入到io.Writer接口 //New:创建logger对象,可以设置日志信息的写入地址,prefix会添加到生成的每一条日志前 //flags setflags prefix setprefix o...

LiuHandsomes的博客 852

Golang 语言的标准库 log 包怎么使用?

Golang 语言的标准库 log 包使用教程

qq_54129105的博客 770
上一篇: go语言flag包的使用
下一篇: go语言文件操作
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值