优化syslog提示、优化其他代码

This commit is contained in:
刘祥超
2022-06-08 19:55:06 +08:00
parent 97b50fab28
commit 2bbc09d3af
4 changed files with 15 additions and 10 deletions

View File

@@ -44,7 +44,7 @@ func (this *BaseStorage) Marshal(accessLog *pb.HTTPAccessLog) ([]byte, error) {
// FormatVariables 格式化字符串中的变量 // FormatVariables 格式化字符串中的变量
func (this *BaseStorage) FormatVariables(s string) string { func (this *BaseStorage) FormatVariables(s string) string {
now := time.Now() var now = time.Now()
return configutils.ParseVariables(s, func(varName string) (value string) { return configutils.ParseVariables(s, func(varName string) (value string) {
switch varName { switch varName {
case "year": case "year":

View File

@@ -1,7 +1,9 @@
package accesslogs package accesslogs
import ( import (
"bytes"
"errors" "errors"
"github.com/TeaOSLab/EdgeAPI/internal/remotelogs"
"github.com/TeaOSLab/EdgeCommon/pkg/rpc/pb" "github.com/TeaOSLab/EdgeCommon/pkg/rpc/pb"
"github.com/TeaOSLab/EdgeCommon/pkg/serverconfigs" "github.com/TeaOSLab/EdgeCommon/pkg/serverconfigs"
"github.com/iwind/TeaGo/logs" "github.com/iwind/TeaGo/logs"
@@ -95,7 +97,10 @@ func (this *SyslogStorage) Write(accessLogs []*pb.HTTPAccessLog) error {
args = append(args, "-S", "10240") args = append(args, "-S", "10240")
cmd := exec.Command(this.exe, args...) var cmd = exec.Command(this.exe, args...)
var stderrBuffer = &bytes.Buffer{}
cmd.Stderr = stderrBuffer
w, err := cmd.StdinPipe() w, err := cmd.StdinPipe()
if err != nil { if err != nil {
return err return err
@@ -111,7 +116,7 @@ func (this *SyslogStorage) Write(accessLogs []*pb.HTTPAccessLog) error {
} }
data, err := this.Marshal(accessLog) data, err := this.Marshal(accessLog)
if err != nil { if err != nil {
logs.Error(err) remotelogs.Error("ACCESS_LOG_POLICY_SYSLOG", "marshal accesslog failed: "+err.Error())
continue continue
} }
_, err = w.Write(data) _, err = w.Write(data)
@@ -121,14 +126,15 @@ func (this *SyslogStorage) Write(accessLogs []*pb.HTTPAccessLog) error {
_, err = w.Write([]byte("\n")) _, err = w.Write([]byte("\n"))
if err != nil { if err != nil {
logs.Error(err) remotelogs.Error("ACCESS_LOG_POLICY_SYSLOG", "write accesslog failed: "+err.Error())
} }
} }
_ = w.Close() _ = w.Close()
err = cmd.Wait() err = cmd.Wait()
if err != nil { if err != nil {
return err return errors.New("send syslog failed: " + err.Error() + ", stderr: " + stderrBuffer.String())
} }
return nil return nil

View File

@@ -22,7 +22,7 @@ const (
UserNodeVersion = "0.3.4" UserNodeVersion = "0.3.4"
AuthorityNodeVersion = "0.0.2" AuthorityNodeVersion = "0.0.2"
MonitorNodeVersion = "0.0.3" MonitorNodeVersion = "0.0.3"
DNSNodeVersion = "0.2.2" DNSNodeVersion = "0.2.3"
ReportNodeVersion = "0.1.0" ReportNodeVersion = "0.1.0"
// SQLVersion SQL版本号 // SQLVersion SQL版本号

View File

@@ -5,7 +5,6 @@ import (
"crypto/tls" "crypto/tls"
"encoding/json" "encoding/json"
"errors" "errors"
"fmt"
"github.com/TeaOSLab/EdgeAPI/internal/accesslogs" "github.com/TeaOSLab/EdgeAPI/internal/accesslogs"
"github.com/TeaOSLab/EdgeAPI/internal/configs" "github.com/TeaOSLab/EdgeAPI/internal/configs"
teaconst "github.com/TeaOSLab/EdgeAPI/internal/const" teaconst "github.com/TeaOSLab/EdgeAPI/internal/const"
@@ -292,7 +291,7 @@ func (this *APINode) checkDB() error {
return err return err
} else { } else {
if i%10 == 0 { // 这让提示不会太多 if i%10 == 0 { // 这让提示不会太多
logs.Println("[API_NODE]reconnecting to database (" + fmt.Sprintf("%.1f", float32(i*100)/float32(maxTries+1)) + "%) ...") logs.Println("[API_NODE]check database connection failed: " + err.Error() + ", reconnecting to database ...")
} }
time.Sleep(1 * time.Second) time.Sleep(1 * time.Second)
} }
@@ -764,8 +763,8 @@ func (this *APINode) dbIssueSuggestion(errString string) string {
} }
// 权限错误 // 权限错误
if strings.Contains(errString, "Error 1045") { if strings.Contains(errString, "Error 1045") || strings.Contains(errString, "Error 1044") {
return "使用的用户和密码没有权限连接到指定数据库,请检查:数据库配置文件中的用户名(" + dsnConfig.User + ")和密码(" + dsnConfig.Passwd + ")是否正确;(当前数据库配置为:" + dsn + ",配置文件位置:" + dbConfigPath + ")。" return "使用的用户和密码没有权限连接到指定数据库,请检查:1数据库配置文件中的用户名(" + dsnConfig.User + ")和密码(" + dsnConfig.Passwd + ")是否正确;2使用的用户是否已经在数据库中设置了正确的权限(当前数据库配置为:" + dsn + ",配置文件位置:" + dbConfigPath + ")。"
} }
// 数据库名称错误 // 数据库名称错误