发布时间:2024-11-23 17:29:47
例如,我们可以使用以下代码片段在应用程序中输出一条信息日志:
```go package main import ( "log" ) func main() { log.Println("This is an information log.") } ``` 这样,当我们运行这段代码时,日志引擎会输出一条类似于下面的日志信息: ``` 2021/01/01 10:00:00 This is an information log. ```例如,我们可以使用以下代码片段设置日志输出格式:
```go package main import ( "log" "os" ) func main() { log.SetOutput(os.Stdout) log.SetFlags(log.Ldate | log.Ltime | log.Lshortfile) log.Println("This is a custom log format.") } ``` 在这个例子中,我们使用`log.SetOutput()`方法将日志输出到标准输出。然后,通过`log.SetFlags()`方法,我们指定了日志输出的格式,包括日期、时间和调用日志的文件名等信息。例如,我们可以使用以下代码示例,结合条件语句来指定日志的级别:
```go package main import ( "log" "os" ) var level = "debug" func main() { log.SetOutput(os.Stdout) log.SetFlags(log.Ldate | log.Ltime | log.Lshortfile) if level == "debug" { log.Println("This is a debug log.") } log.Println("This is a general log.") } ``` 在这个例子中,我们通过设置`level`变量来指定日志的级别。在条件语句中,只有当`level`值为"debug"时,才会输出调试日志。否则,仅输出普通日志。例如,我们可以使用以下代码示例将日志输出到一个文件中:
```go package main import ( "log" "os" ) func main() { file, err := os.OpenFile("app.log", os.O_APPEND|os.O_CREATE|os.O_WRONLY, 0644) if err != nil { panic(err) } defer file.Close() log.SetOutput(file) log.SetFlags(log.Ldate | log.Ltime | log.Lshortfile) log.Println("This log will be written to the file.") } ``` 在这个例子中,我们首先通过调用`os.OpenFile()`方法创建一个文件,用于存储日志。然后,我们通过`log.SetOutput()`方法将日志输出重定向到该文件。最后,我们像之前一样使用`log.Println()`方法记录日志。例如,我们可以使用以下代码示例实现针对不同模块的日志管理:
```go package main import ( "log" "os" ) var mod1Logger *log.Logger var mod2Logger *log.Logger func main() { mod1File, _ := os.OpenFile("mod1.log", os.O_APPEND|os.O_CREATE|os.O_WRONLY, 0644) mod2File, _ := os.OpenFile("mod2.log", os.O_APPEND|os.O_CREATE|os.O_WRONLY, 0644) mod1Logger = log.New(mod1File, "Module 1: ", log.Ldate|log.Ltime|log.Lshortfile) mod2Logger = log.New(mod2File, "Module 2: ", log.Ldate|log.Ltime|log.Lshortfile) mod1Logger.Println("This is a log from module 1.") mod2Logger.Println("This is a log from module 2.") } ``` 在这个例子中,我们首先通过`os.OpenFile()`方法创建了两个文件,分别用于存储模块1和模块2的日志。然后,我们使用`log.New()`方法创建了两个专门的日志记录器`mod1Logger`和`mod2Logger`,分别与这两个文件绑定。最后,我们通过调用相应的日志记录器的方法来记录模块1和模块2的日志。