1
Go语言 常用日志记录方法
source link: https://studygolang.com/articles/1168?fr=sidebar
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.
Go语言 常用日志记录方法
abv123456789 · 2014-10-10 12:00:00 · 10593 次点击 · 预计阅读时间 2 分钟 · 大约8小时之前 开始浏览这是一个创建于 2014-10-10 12:00:00 的文章,其中的信息可能已经有所发展或是发生改变。
Go目前标准包中日志只是方便的实现日志记录的功能,这些日志都是基于fmt包的打印再结合panic之类的函数来进行一般的打印、抛出错误处理。
一个简单的日志记录代码例子:
代码来自:http://www.du52.com/text.php?id=114
package main
import(
"fmt"
"log"
"os"
)
func main(){
logfile,err:=os.OpenFile("/Users/cybercare/tmp/test.log",os.O_RDWR|os.O_CREATE,0666)
if err!=nil{
fmt.Printf("%s\r\n",err.Error())
os.Exit(-1)
}
defer logfile.Close()
logger:=log.New(logfile,"\r\n",log.Ldate|log.Ltime|log.Llongfile)
logger.Println("hello")
logger.Println("oh....")
logger.Fatal("test")
logger.Fatal("test2")
}
在log文件中显示的是:
2013/03/16 17:28:18 /Users/cybercare/go/src/test1/main.go:18: hello
2013/03/16 17:28:18 /Users/cybercare/go/src/test1/main.go:19: oh....
2013/03/16 17:28:18 /Users/cybercare/go/src/test1/main.go:20: test
日志当然也可以不记录在文件中,默认是不记录在文件中的:
下面是一个例子:linux下通过go语言获得系统进程cpu使用情况,这段代码通过linux的系统命令 ps来分析cpu的使用情况
代码出处:http://www.sharejs.com/codes/go/5662
package main
import(
"bytes"
"log"
"os/exec"
"strconv"
"strings"
)
type Process struct{
pid int
cpu float64
}
func main(){
cmd:=exec.Command("ps","aux")
var out bytes.Buffer
cmd.Stdout=&out
err:=cmd.Run()
if err!=nil{
log.Fatal(err)
}
processes:=make([]*Process,0)
for{
line,err:=out.ReadString('\n')
if err!=nil{
break
}
tokens:=strings.Split(line,"")
ft:=make([]string,0)
for _,t:=range tokens{
if t!=""&&t!="\t"{
ft=append(ft,t)
}
}
log.Println(len(ft),ft)
pid,err:=strconv.Atoi(ft[1])
if err!=nil{
continue
}
cpu,err:=strconv.ParseFloat(ft[2],64)
if err!=nil{
log.Fatal(err)
}
processes=append(processes,&Process{pid,cpu})
}
for _,p:=range processes{
log.Println("Process",p.pid,"takes",p.cpu,"%oftheCPU")
}
}
有疑问加站长微信联系(非本文作者)
Recommend
About Joyk
Aggregate valuable and interesting links.
Joyk means Joy of geeK