0

go基础之log包

 2 years ago
source link: https://blog.51cto.com/u_3764469/5592276
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.
neoserver,ios ssh client

go基础之log包

精选 原创

zzxiaoma 2022-08-19 08:27:05 博主文章分类:go ©著作权

文章标签 输出格式 默认参数 文件名 文章分类 Go语言 编程语言 yyds干货盘点 阅读数185

1、简单的输出

package main
import (
"log"
)
func main() {
log.Println("abc")
}

2022/08/18 10:16:01 abc

格式为日期,时间,内容。如果想修改输出的格式,可以设置

const (

   Ldate         = 1 << iota     // 日期

   Ltime                         // 时间

   Lmicroseconds                 // 精准度更高的时间

   Llongfile                     // 文件位置和代码行数

   Lshortfile                    // 文件名和代码行

   LUTC                          // 设置的日期或时间,使用UTC时区

   Lmsgprefix                    // 把前缀放到内容前面,默认是在日志的最前面

   LstdFlags     = Ldate | Ltime // 默认值

例如,设置前缀

log.SetPrefix("zhangsan:")

zhangsan:2022/08/18 10:39:02 abc

设置Lmsgprefix

log.SetFlags(log.Ldate | log.Lmsgprefix)

2022/08/18 zhangsan:abc

2、异常输出

log.Fatal("abc")

Fatal方法会使程序退出exit status 1

log.Panic("abc")

Panic是程序触发Panic异常

3、设置输出文件

f, err := os.OpenFile("./abc.log", os.O_WRONLY|os.O_APPEND|os.O_CREATE, 0664)
if err != nil {
log.Fatal(err)
}
log.SetOutput(f)

4、生成log指针

使用默认参数

log2 := log.Default()
log2.Println("gef")

自定义新对象

func New(out io.Writer, prefix string, flag int) *Logger

第一个参数其实对应的就是output参数,第二个是前缀,第三个是输出格式

log3 := log.New(os.Stdout, "zhangsan:", log.Ldate|log.Lmsgprefix)
log3.Println("uio")

2022/08/18 zhangsan:uio


About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK