From 6c3a44b2e565ba2296cd76aed8a23b2466fc47a5 Mon Sep 17 00:00:00 2001 From: Huangzj Date: Thu, 17 Dec 2020 10:32:51 +0800 Subject: [PATCH] =?UTF-8?q?feat(Go-StudyExample):2020/12/17=EF=BC=9A?= =?UTF-8?q?=E6=96=B0=E5=A2=9Esdk=E5=8C=85Logger=E7=9A=84=E4=BD=BF=E7=94=A8?= =?UTF-8?q?=E7=A4=BA=E4=BE=8B?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- example/originGoLanguage/Log_test.go | 57 ++++++++++++++++++++++++++++ example/originGoLanguage/test.log | 2 + readme.md | 2 + 3 files changed, 61 insertions(+) create mode 100644 example/originGoLanguage/Log_test.go create mode 100644 example/originGoLanguage/test.log diff --git a/example/originGoLanguage/Log_test.go b/example/originGoLanguage/Log_test.go new file mode 100644 index 0000000..1953a4e --- /dev/null +++ b/example/originGoLanguage/Log_test.go @@ -0,0 +1,57 @@ +/* + * @Author : huangzj + * @Time : 2020/12/17 10:14 + * @Description: 参考地址:http://www.topgoer.com/%E5%B8%B8%E7%94%A8%E6%A0%87%E5%87%86%E5%BA%93/log.html + */ + +package originGoLanguage + +import ( + "fmt" + "log" + "os" + "testing" +) + +//日志的Flag说明: +//const ( +// // 控制输出日志信息的细节,不能控制输出的顺序和格式。 +// // 输出的日志在每一项后会有一个冒号分隔:例如2009/01/23 01:23:23.123123 /a/b/c/d.go:23: message +// Ldate = 1 << iota // 日期:2009/01/23 +// Ltime // 时间:01:23:23 +// Lmicroseconds // 微秒级别的时间:01:23:23.123123(用于增强Ltime位) +// Llongfile // 文件全路径名+行号: /a/b/c/d.go:23 +// Lshortfile // 文件名+行号:d.go:23(会覆盖掉Llongfile) +// LUTC // 使用UTC时间 +// LstdFlags = Ldate | Ltime // 标准logger的初始值 +//) +func TestLogOut(t *testing.T) { + log.SetFlags(log.Llongfile | log.Lmicroseconds | log.Ldate) + log.SetPrefix("[我是日志的前缀]") //配置日志的前缀 + log.Println("这是一条很普通的日志。") +} + +func TestLogOutInFile(t *testing.T) { + logFile, err := os.OpenFile("test.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.SetPrefix("[我是日志的前缀]") //配置日志的前缀 + log.SetFlags(log.Llongfile | log.Lmicroseconds | log.Ldate) + log.Println("我是一个写到文件中的日志") +} + +func TestNewLogger(t *testing.T) { + logger := log.New(os.Stdout, "<自定义Logger对象>", log.Lshortfile|log.Ldate|log.Ltime) //第二个参数是前缀,第三个参数是 + logger.Println("这是自定义的logger记录的日志。") + + logFile, err := os.OpenFile("test.log", os.O_CREATE|os.O_WRONLY|os.O_APPEND, 0644) + if err != nil { + fmt.Println("open log file failed, err:", err) + return + } + logger.SetOutput(logFile) + logger.Println("自定义Logger对象输出到文件") +} diff --git a/example/originGoLanguage/test.log b/example/originGoLanguage/test.log new file mode 100644 index 0000000..c6ba6bd --- /dev/null +++ b/example/originGoLanguage/test.log @@ -0,0 +1,2 @@ +[我是日志的前缀]2020/12/17 10:26:48.074272 F:/Go_BySelf/src/Go-StudyExample/example/originGoLanguage/Log_test.go:43: 我是一个写到文件中的日志 +<自定义Logger对象>2020/12/17 10:31:51 Log_test.go:56: 自定义Logger对象输出到文件 diff --git a/readme.md b/readme.md index 4034919..8c3a742 100644 --- a/readme.md +++ b/readme.md @@ -27,6 +27,8 @@ json与struct之间转换处理工具使用示例 2020/12/17: 新增cronTab与go cron的定时任务使用示例 +2020/12/17:新增sdk包Logger的使用示例 + # mod vendor模式加载包 通过go mod的方式加载的github上面的包会有报红的问题,但是包本身是可以运行的,这样就是会有一个问题,如果你想要点击去看方法的内容,没办法做到