Skip to content

Commit 3a39ca0

Browse files
committed
可配置日志输出到控制台和日志文件
1 parent 1ba768d commit 3a39ca0

File tree

23 files changed

+168
-77
lines changed

23 files changed

+168
-77
lines changed

.gitignore

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,2 +1,3 @@
11
*.exe
2-
/dist
2+
/dist
3+
/*.log

README.md

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,9 @@
1919

2020
```yaml
2121
my_public_ip_or_domian: "" #你运行本软件的服务器的域名或者ip地址,用来使用命令生成token时有用
22+
logconfig:
23+
enablestdout: true #是否输出日志到控制台
24+
logfilepath: "./mylog.log" #配置日志输出文件的位置,空则不输出到文件
2225
common:
2326
bind_addr: 0.0.0.0 #服务器监听的IP地址,默认监听所有
2427
tcp_port: 34320 #服务器使用的tcp端口

config/config.go

Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@ import (
44
"fmt"
55
"github.com/OpenIoTHub/utils/models"
66
"gopkg.in/yaml.v2"
7+
"io"
78
"io/ioutil"
89
"log"
910
"os"
@@ -24,6 +25,21 @@ func LoadConfig() (err error) {
2425
}
2526
log.Println("使用配置文件:", DefaultConfigFilePath)
2627
ConfigMode, err = GetConfig(DefaultConfigFilePath)
28+
//解析日志配置
29+
writers := []io.Writer{}
30+
if ConfigMode.LogConfig != nil && ConfigMode.LogConfig.EnableStdout {
31+
writers = append(writers, os.Stdout)
32+
}
33+
if ConfigMode.LogConfig != nil && ConfigMode.LogConfig.LogFilePath != "" {
34+
f, err := os.OpenFile(ConfigMode.LogConfig.LogFilePath, os.O_WRONLY|os.O_CREATE|os.O_APPEND, 0644)
35+
if err != nil {
36+
log.Fatal(err)
37+
}
38+
writers = append(writers, f)
39+
}
40+
fileAndStdoutWriter := io.MultiWriter(writers...)
41+
log.SetOutput(fileAndStdoutWriter)
42+
//
2743
if err != nil {
2844
return
2945
}
@@ -32,6 +48,10 @@ func LoadConfig() (err error) {
3248

3349
func InitConfigFile() {
3450
var err error
51+
ConfigMode.LogConfig = &models.LogConfig{
52+
EnableStdout: true,
53+
LogFilePath: "",
54+
}
3555
ConfigMode.Common.BindAddr = DefaultBindAddr
3656
ConfigMode.Common.KcpPort = DefaultKcpPort
3757
ConfigMode.Common.TcpPort = DefaultTcpPort

go.mod

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@ go 1.12
44

55
require (
66
github.com/OpenIoTHub/server-grpc-api v1.0.4
7-
github.com/OpenIoTHub/utils v0.0.60
7+
github.com/OpenIoTHub/utils v0.0.61
88
github.com/cpuguy83/go-md2man/v2 v2.0.0 // indirect
99
github.com/golang/protobuf v1.4.2 // indirect
1010
github.com/gomodule/redigo v2.0.0+incompatible
@@ -19,7 +19,7 @@ require (
1919
github.com/templexxx/cpufeat v0.0.0-20180724012125-cef66df7f161 // indirect
2020
github.com/templexxx/xor v0.0.0-20191217153810-f85b25db303b // indirect
2121
github.com/tjfoc/gmsm v1.3.2 // indirect
22-
github.com/urfave/cli/v2 v2.2.0
22+
github.com/urfave/cli/v2 v2.3.0
2323
github.com/xtaci/kcp-go v5.4.20+incompatible
2424
github.com/xtaci/kcp-go/v5 v5.5.14 // indirect
2525
golang.org/x/crypto v0.0.0-20200622213623-75b288015ac9

go.sum

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3,10 +3,14 @@ github.com/BurntSushi/toml v0.3.1 h1:WXkYYl6Yr3qBf1K79EBnL4mak0OimBfB0XUf9Vl28OQ
33
github.com/BurntSushi/toml v0.3.1/go.mod h1:xHWCNGjB5oqiDr8zfno3MHue2Ht5sIBksp03qcyfWMU=
44
github.com/OpenIoTHub/getip v0.1.0 h1:W8iB+PcDz15jJHJTxMZmyXVAc8TRjwJTZ1+JsxCYVc4=
55
github.com/OpenIoTHub/getip v0.1.0/go.mod h1:MO10UjKzR2d8p2ajplZu//NsvQ0GMiL7pllh1LEnKIM=
6+
github.com/OpenIoTHub/getip v0.1.2 h1:xpKf37ble1H6N02XgpAGLxG5cVcp8vIIs5XaUYNi+g0=
7+
github.com/OpenIoTHub/getip v0.1.2/go.mod h1:yEnLPtVS4JBoEU720mO6FmxLwCICKLyOcOEKRD6w0cY=
68
github.com/OpenIoTHub/server-grpc-api v1.0.4 h1:dVqKqdhV6VaQIZipOHqxJEpt7NfU8QvPTaDXVJd1Vog=
79
github.com/OpenIoTHub/server-grpc-api v1.0.4/go.mod h1:4Tvt1MoMNqIBcVSweRZOXuqOj5JWw1HPNxd9vZv4oAI=
810
github.com/OpenIoTHub/utils v0.0.60 h1:6yKUdBp0O49IzV1fH+p1/ah1mgqbmF+DLSFOSFlYeWA=
911
github.com/OpenIoTHub/utils v0.0.60/go.mod h1:y1u/SS0CAgsOI95RnrI6nxMFcXNVAF6NF6sbNDqNDkQ=
12+
github.com/OpenIoTHub/utils v0.0.61 h1:CSe8mcGq8NX8xBtTzvjkcpczrFxUrlByUE5AWnnp+zw=
13+
github.com/OpenIoTHub/utils v0.0.61/go.mod h1:i0gwARUWZV6mtb5uREHNGzlPOjQxU282ztsJM9dQjaA=
1014
github.com/aead/chacha20 v0.0.0-20180709150244-8b13a72661da/go.mod h1:eHEWzANqSiWQsof+nXEI9bUVUyV6F53Fp89EuCh2EAA=
1115
github.com/cenkalti/backoff v2.2.1+incompatible h1:tNowT99t7UNflLxfYYSlKYsBpXdEet03Pg2g16Swow4=
1216
github.com/cenkalti/backoff v2.2.1+incompatible/go.mod h1:90ReRw6GdpyfrHakVjL/QHaoyV4aDUVVkXQJJJ3NXXM=
@@ -113,6 +117,8 @@ github.com/tjfoc/gmsm v1.3.2 h1:7JVkAn5bvUJ7HtU08iW6UiD+UTmJTIToHCfeFzkcCxM=
113117
github.com/tjfoc/gmsm v1.3.2/go.mod h1:HaUcFuY0auTiaHB9MHFGCPx5IaLhTUd2atbCFBQXn9w=
114118
github.com/urfave/cli/v2 v2.2.0 h1:JTTnM6wKzdA0Jqodd966MVj4vWbbquZykeX1sKbe2C4=
115119
github.com/urfave/cli/v2 v2.2.0/go.mod h1:SE9GqnLQmjVa0iPEY0f1w3ygNIYcIJ0OKPMoW2caLfQ=
120+
github.com/urfave/cli/v2 v2.3.0 h1:qph92Y649prgesehzOrQjdWyxFOp/QVM+6imKHad91M=
121+
github.com/urfave/cli/v2 v2.3.0/go.mod h1:LJmUH05zAU44vOAcrfzZQKsZbVcdbOG8rtL3/XcUArI=
116122
github.com/xtaci/kcp-go v5.4.20+incompatible h1:TN1uey3Raw0sTz0Fg8GkfM0uH3YwzhnZWQ1bABv5xAg=
117123
github.com/xtaci/kcp-go v5.4.20+incompatible/go.mod h1:bN6vIwHQbfHaHtFpEssmWsN45a+AZwO7eyRCmEIbtvE=
118124
github.com/xtaci/kcp-go/v5 v5.5.12 h1:iALGyvti/oBbl1TbVoUpHEUHCorDEb3tEKl1CPY3KXM=
@@ -225,6 +231,7 @@ gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8
225231
gopkg.in/check.v1 v1.0.0-20190902080502-41f04d3bba15 h1:YR8cESwS4TdDjEe65xsg0ogRM/Nc3DYOhEAlW+xobZo=
226232
gopkg.in/check.v1 v1.0.0-20190902080502-41f04d3bba15/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0=
227233
gopkg.in/yaml.v2 v2.2.2/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI=
234+
gopkg.in/yaml.v2 v2.2.3/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI=
228235
gopkg.in/yaml.v2 v2.3.0 h1:clyUAQHOM3G0M3f5vQj7LuJrETvjVot3Z5el9nffUtU=
229236
gopkg.in/yaml.v2 v2.3.0/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI=
230237
honnef.co/go/tools v0.0.0-20190102054323-c2f93a96b099/go.mod h1:rf3lG4BRIbNafJWhAfAdb/ePZxsR/4RtNHQocxwk9r4=

server-go.yaml

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,7 @@
11
my_public_ip_or_domian: "" #你运行本软件的服务器的域名或者ip地址,用来使用命令生成token时有用
2+
logconfig:
3+
enablestdout: true #是否输出日志到控制台
4+
logfilepath: "./mylog.log" #配置日志输出文件的位置,空则不输出到文件
25
common:
36
bind_addr: 0.0.0.0 #服务器监听的IP地址,默认监听所有
47
tcp_port: 34320 #服务器使用的tcp端口

vendor/github.com/OpenIoTHub/getip/iputils/utils.go

Lines changed: 14 additions & 17 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

vendor/github.com/OpenIoTHub/utils/models/config.go

Lines changed: 9 additions & 2 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

vendor/github.com/OpenIoTHub/utils/msg/pack.go

Lines changed: 1 addition & 1 deletion
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

vendor/github.com/OpenIoTHub/utils/net/ip/ip.go

Lines changed: 12 additions & 3 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

vendor/github.com/OpenIoTHub/utils/net/mdns.go

Lines changed: 1 addition & 1 deletion
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

vendor/github.com/urfave/cli/v2/README.md

Lines changed: 7 additions & 3 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

vendor/github.com/urfave/cli/v2/app.go

Lines changed: 17 additions & 19 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

0 commit comments

Comments
 (0)