Go_log

u012807459 · · 2653 次点击 · · 开始浏览    
这是一个创建于 的文章,其中的信息可能已经有所发展或是发生改变。

晚上闲着看了眼log  为了学习记录一下

const (
        // Bits or'ed together to control what's printed. There is no control over the
        // order they appear (the order listed here) or the format they present (as
        // described in the comments).  A colon appears after these items:
        //	2009/01/23 01:23:23.123123 /a/b/c/d.go:23: message
        Ldate         = 1 << iota     // the date: 2009/01/23
        Ltime                         // the time: 01:23:23
        Lmicroseconds                 // microsecond resolution: 01:23:23.123123.  assumes Ltime.
        Llongfile                     // full file name and line number: /a/b/c/d.go:23
        Lshortfile                    // final file name element and line number: d.go:23. overrides Llongfile
        LstdFlags     = Ldate | Ltime // initial values for the standard logger
)

log包中会先定义几个常量 作为flag  在创建Logger时 指定flag 那么log在每次打印日志时都会将flag所对应的信息打印出来

比如l := log.New(os.Stdout,"",log.Ldate|log.Ltime) 指定了Ldate 和 Ltime那么每次调用

l.Println(“date/time”)打印时会自动加上日期和时间的信息

结果 : 2014/07/26 23:03:22 date/time:

上面几个常量解释的很清楚了 我就不解释了

log包中自己内置了一个Logger(Logger是log包中的一个结构体所有的log输出都是围绕Logger展开的 结构如下)

type Logger struct {
	mu     sync.Mutex // ensures atomic writes; protects the following fields
	prefix string     // prefix to write at beginning of each line
	flag   int        // properties
	out    io.Writer  // destination for output
	buf    []byte     // for accumulating text to write
}
如果直接使用log.xxx那么都是调用其内置的Logger )

var std = New(os.Stderr, "", LstdFlags)

以下三个函数 其实就是在调用log包中Print PrintF Printlb 之后 调用 os.Exit(1)退出应用  整个应用都会退出 所以慎用

func Fatal(v ...interface{})

func Fatalf(format string, v ...interface{})

func Fatalln(v ...interface{})

至于三个Panic函数 只会抛出恐慌并不会是程序退出  只要自己做好处理就行了

func Prefix() string // 返回Logger创建时定义的前缀

如果不想使用内置的Logger则自己创建一个出来通过下面的New函数

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

out代表输出位置  prefix代表前缀 flag就是之前介绍的 

log包中还有一个syslog还没空看 以后再说吧

这个包里 其实没啥可讲的........


有疑问加站长微信联系(非本文作者)

本文来自:CSDN博客

感谢作者:u012807459

查看原文:Go_log

入群交流(和以上内容无关):加入Go大咖交流群,或添加微信:liuxiaoyan-s 备注:入群;或加QQ群:692541889

2653 次点击  
加入收藏 微博
暂无回复
添加一条新回复 (您需要 登录 后才能回复 没有账号 ?)
  • 请尽量让自己的回复能够对别人有帮助
  • 支持 Markdown 格式, **粗体**、~~删除线~~、`单行代码`
  • 支持 @ 本站用户;支持表情(输入 : 提示),见 Emoji cheat sheet
  • 图片支持拖拽、截图粘贴等方式上传