我的go學習筆記(一) 寫日誌

2021-08-19 09:25:55 字數 3289 閱讀 4149

第一種方法:

寫乙個方法,每寫一條日誌都會做一次檔案開啟和關閉

func mylog(v ...inte***ce{})
下邊這個是為了支援println的形式輸入

func mylog(v ...inte***ce{})
下邊引數中的tag可以自定義成任何關鍵字,同時增加日期-時間-毫秒。

const tag

="main: "

logger :=

log.

new(f, tag, log

.ldate|

log.ltime|

log.lmicroseconds)

執行結果:在test.log

main: 2018/04/26 11:03:12.343476 這是第一條日誌

main: 2018/04/26 11:03:12.418434 這是第二條日誌

檔名按照日期設定 修改

t := time.now().format("2006-01-02")

name := "test_" + t + ".log"

第二種方法:

一次性開啟檔案,每次都可以直接記錄日誌,同時做了日誌等級處理。

檔名mylog.go

package mylog

import (

"fmt"

"log"

"os"

"time"

)var (

logi *log.logger

logd *log.logger

loge *log.logger

logw *log.logger

f *os.file

)func init()

logi = log.new(f, "info : ", log.ldate|log.ltime|log.lmicroseconds)

logd = log.new(f, "debug: ", log.ldate|log.ltime|log.lmicroseconds)

loge = log.new(f, "error: ", log.ldate|log.ltime|log.lmicroseconds)

logw = log.new(f, "warn : ", log.ldate|log.ltime|log.lmicroseconds)

}func close()

func logi(v ...inte***ce{})

func logd(v ...inte***ce{})

func loge(v ...inte***ce{})

func logw(v ...inte***ce{})

應用

mylog.init()

mylog.logi("這是第二種方法日誌")

mylog.loge("這是第二種方法日誌")

mylog.logd("這是第二種方法日誌")

mylog.logw("這是第二種方法日誌")

mylog.close()

輸出效果檔案:

info : 2018/04/26

11:59:56.227440 這是第二種方法日誌

error:

2018/04/26

11:59:56.228440 這是第二種方法日誌

debug:

2018/04/26

11:59:56.228440 這是第二種方法日誌

warn : 2018/04/26

11:59:56.228440 這是第二種方法日誌

第三種方法:

建立乙個類,然後建立物件,封裝方法。

檔案:

package mylog

import (

"fmt"

"log"

"os"

"time"

)type mlog struct

func (l *mlog) init()

l.logi = log.new(l.f, "info : ", log.ldate|log.ltime|log.lmicroseconds)

l.logd = log.new(l.f, "debug: ", log.ldate|log.ltime|log.lmicroseconds)

l.loge = log.new(l.f, "error: ", log.ldate|log.ltime|log.lmicroseconds)

l.logw = log.new(l.f, "warn : ", log.ldate|log.ltime|log.lmicroseconds)

l.isinit = true

}func (l *mlog) close()

}func (l *mlog) i(v ...inte***ce{})

l.logi

.println(v...)

}func (l *mlog) d(v ...inte***ce{})

l.logd

.println(v...)

}func (l *mlog) e(v ...inte***ce{})

l.loge

.println(v...)

}func (l *mlog) w(v ...inte***ce{})

l.logw

.println(v...)

}

應用

mlog = new(mylog.mlog)

mlog.i("這是第三種方法")

mlog.d("這是第三種方法")

mlog.e("這是第三種方法")

mlog.w("這是第三種方法")

mlog.close()

輸出結果

info : 2018/04/26

12:38:19.258334 這是第三種方法

debug:

2018/04/26

12:38:19.259334 這是第三種方法

error:

2018/04/26

12:38:19.259334 這是第三種方法

warn : 2018/04/26

12:38:19.259334 這是第三種方法

僅此 先寫一寫我的部落格初衷

第一次接觸部落格還是在研究生一年級的時候,那時候的我對於部落格啊,程式啊還完完全全的是乙個新人,對這些的了解只是停留在字面意思上,雖然總想著去了解一些,但總是由於懶而放棄了。由於發表學術 需要對演算法進行認真,萬般無奈 之下只能自己在網上查資料寫程式,慢慢的接觸了許多人寫的部落格。所謂萬千世界無奇不...

字元陣列的一寫特性

字元陣列是元素型別為字元的陣列,它既具有普通陣列的一般性質,又具有某些特殊性質。字串常量是用雙引號包圍的字串行。儲存字串常量時,系統會在字串行後自動加上 0 標誌字串的結束。字串的長度定義為字串中的有效字元數,不包括結束標誌 0 和雙引號。字串變數是以 0 作為結束標誌的字元陣列。字串變數用於儲存和...

github的一寫常用命令

自己配置的常用的一些命令 第一次需要配置使用者名稱和郵箱 git config global user.name 註冊的使用者名稱 git config global user.email 註冊的郵箱位址 git init 初始化倉庫 git status 檢視檔案狀態 git add 把檔案加到暫...