golang基础-beego读取配置、log日志输出

beego读取配置文件

配置文件内容如下:

[server]
listen_ip = "0.0.0.0"
listen_port = 8888

[logs]
log_level=debug
log_path=./logs/logagent.log

[collect]
log_path=D:\project\logs\logagent.log
topic=nginx_log
chan_size=100

通过代码读取配置文件

package main

import (
    "fmt"
    "github.com/astaxie/beego/config"
)

func main() {
    conf, err := config.NewConfig("ini", "logagent.conf")
    if err != nil {
        fmt.Println("new config failed, err:", err)
        return
    }

    port ,err:= conf.Int("server::listen_port")
    if err != nil {
        fmt.Println("read server:port failed, err:", err)
        return
    }

    fmt.Println("port:", port)

    log_level := conf.String("logs::log_level")
    if len(log_level) == 0 {
        log_level = "debug"
    }

    fmt.Println("log_level:", log_level)

    log_path := conf.String("collect::log_path")
    fmt.Println("log_path:", log_path)
}

输出如下:

PS E:\golang\go_pro\src\safly> go run demo.go
port: 8888
log_level: debug
log_path: D:\project\logs\logagent.log
PS E:\golang\go_pro\src\safly>
beego输出log文件日志

需要创建logs文件夹
这里写图片描述

package main

import (
    "encoding/json"
    "fmt"
    "github.com/astaxie/beego/logs"
)

func main() {
    //我测试如下3个路径均可
    config := make(map[string]interface{})
    // config["filename"] = "e:/golang/go_pro/logs/logcollect.log"
    // config["filename"] = "e://golang//go_pro//logs//logcollect.log"
    config["filename"] = "e:\\golang\\go_pro\\logs\\logcollect.log"
    config["level"] = logs.LevelDebug

    configStr, err := json.Marshal(config)
    if err != nil {
        fmt.Println("marshal failed, err:", err)
        return
    }

    logs.SetLogger(logs.AdapterFile, string(configStr))

    logs.Debug("this is a test, my name is %s", "stu01")
    logs.Trace("this is a trace, my name is %s", "stu02")
    logs.Warn("this is a warn, my name is %s", "stu03")
}

然后就会在logs文件夹中输出log文件logcollect.log

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值