首页 > 其他分享 >Golang - 日志

Golang - 日志

时间:2023-06-20 11:01:16浏览次数:38  
标签:log Golang Print 日志 logFile os logger out


官方 Log 包

方法

  • 输出到 logger.out: log.Print(), log.Printf(), log.Println()
  • 输出到 logger.out, 再执行 os.Exit(1): log.Fatal(), log.Fatalln(), log.Fatalf()
  • 输出到 logger.out, 再执行 panic(): log.Panic(), log.Panicln(), log.Panicf()

logger 结构体

type Logger struct {
	mu     sync.Mutex // ensures atomic writes; protects the following fields
	prefix string     // 日志前缀
    flag   int        // 日志格式
    // 0 空
    // 1 年月日
    // 2 时分秒
    // 3 1+2 默认, 一般情况下用这个即可
    // 4 时分秒+毫秒
    // 5 年月日+时分秒+毫秒
	out    io.Writer  // 输出位置
	buf    []byte     // for accumulating text to write
}

使用示例

  • 打印到终端(默认)
package main

import "log"

func main() {
	log.Print("abc")
}
  • 打印到文件
package main

import (
	"log"
	"os"
)

func main() {

	// 打开一个文件作为日志文件
	logFile, _ := os.OpenFile("xx.log", os.O_WRONLY|os.O_CREATE|os.O_TRUNC, os.ModePerm)
	defer logFile.Close()
	
    log.SetOutput(logFile)
	// log.SetPrefix("[thc] ")  // 一般情况下不需要设置, 使用默认即可
	// log.SetFlags(3)          // 一般情况下不需要设置, 使用默认即可
    log.Print("xxx")


	// 单独生成一个 log.Logger, 效果同上
	logger := log.New(logFile, "[thc] ", 3)
    logger.Print("xxx")
}


标签:log,Golang,Print,日志,logFile,os,logger,out
From: https://blog.51cto.com/u_16165803/6521294

相关文章

  • Golang - Structs 包的使用
    packagemain////主要用于struct转map//还可以判断结构体是否有空属性等功能//import( "fmt" "github.com/fatih/structs")//struct-->maptypeStustruct{ Namestring Ageint}funcmain(){ //创建一个Age属性为空的struct实例 u1:=Stu{......
  • ASP.NET Core MVC 从入门到精通之日志管理
    随着技术的发展,ASP.NETCoreMVC也推出了好长时间,经过不断的版本更新迭代,已经越来越完善,本系列文章主要讲解ASP.NETCoreMVC开发B/S系统过程中所涉及到的相关内容,适用于初学者,在校毕业生,或其他想从事ASP.NETCoreMVC系统开发的人员。经过前几篇文章的讲解,初步了解ASP.NETCore......
  • 在.Net Core6中使用log4net组件写日志到本地文件的操作流程
    原文链接:https://blog.csdn.net/kevin860/article/details/1068810621.引用包: Log4Net  Microsoft.Extensions.Logging.Log4Net.AspNetCore Microsoft.Extensions.Logging //loggingbuilder.AddFilter该方法需要引入Microsoft.Extensions.Logging名称空间 ......
  • python 日志使用
    python日志使用日志基础教程日志是对软件执行时所发生事件的一种追踪方式。软件开发人员对他们的代码添加日志调用,借此来指示某事件的发生。一个事件通过一些包含变量数据的描述信息来描述(比如:每个事件发生时的数据都是不同的)。开发者还会区分事件的重要性,重要性也被称为等级......
  • BMZCTF:日志审计
    http://bmzclub.cn/challenges#%E6%97%A5%E5%BF%97%E5%AE%A1%E8%AE%A1logcheck.log盲注的日志,将flag.php这块的内容提取出来192.168.0.1--[13/Oct/2018:12:38:14+0000]"GET/flag.php?user=hence%27%20AND%20ORD%28MID%28%28SELECT%20IFNULL%28CAST%28secret%20AS%20CHAR%29%......
  • vs编译时打印Task中日志。
    https://learn.microsoft.com/en-us/dotnet/core/tools/dotnet-build-v|--verbositySetstheverbositylevelofthecommand.Allowedvaluesareq[uiet],m[inimal],n[ormal],d[etailed],anddiag[nostic].Thedefaultisminimal.Bydefault,MSBuilddisplay......
  • oracle 手动删除归档日志
    1、https://blog.csdn.net/bosschen/article/details/129415215删除归档文件首先删除归档文件在物理主机磁盘中的文件物理文件删除后ORACLE的controlfile中仍然记录着这些archivelog的信息,在oracle的OEM管理器中有可视化的日志展现出,接下来要做的就是从controlfile中清除掉多余......
  • 相同更改数据量的前提下,单次COMMIT和多次COMMIT对日志空间浪费的影响对比
    LGWR进程按照顺序写在线日志,中间不会跳跃,而且LGWR进程不会在同一个日志快写2次,即使一次写入的日志快只占几个字节,下次不会再用了,这就造成日志空间的浪费。Oracle做一次Commit,就会触发LGWR进程进行日志缓冲到日志文件的写入操作,因此可以说更改相同数据量的前提下,如果提交过于频繁,产......
  • mybatis-plus 数据库日志仅打印SQL
     一、项目背景:springboot、web组件、Mysql8、java8+; 二、开发环境打印SQL及执行结果日志,便于调试接口;mybatis-plus配置文件的configuration节点添加以下配置2、效果   三、生产环境仅打印SQL,避免打印过多的查询结果影响系统性能    1、pom中增加sl4j的......
  • grep过滤日志技巧
    为了迅速将ERROR和WARN从日志中过滤出来,可以执行如下命令:grep-E"ERROR|WARN"my_log_file.log    -E,--extended-regexp       InterpretPATTERNasanextendedregularexpression(seebelow).note:经过试验,-G,-e都......