1
0
Fork 0
mirror of https://github.com/eosswedenorg/antelope-api-healthcheck synced 2026-06-18 05:00:03 +02:00

replace standard logger for github.com/inconshreveable/log15

This commit is contained in:
Henrik Hautakoski 2022-01-03 17:34:02 +01:00
parent 107df930f1
commit 1d8b47762e
No known key found for this signature in database
GPG key ID: 608414D93E862CCD
8 changed files with 38 additions and 137 deletions

13
go.mod
View file

@ -3,18 +3,17 @@ module github.com/eosswedenorg/eosio-api-healthcheck
go 1.14
require (
internal/eosapi v1.0.0
internal/log v1.0.0
internal/utils v1.0.0
github.com/eosswedenorg-go/pid v1.0.0
github.com/eosswedenorg-go/haproxy v0.0.0-20220101140534-fccfdd93a8cd
github.com/eosswedenorg-go/pid v1.0.0
github.com/eosswedenorg-go/tcp_server v0.1.0
github.com/go-stack/stack v1.8.1 // indirect
github.com/inconshreveable/log15 v0.0.0-20201112154412-8562bdadbbac
github.com/mattn/go-colorable v0.1.12 // indirect
github.com/pborman/getopt/v2 v2.1.0
internal/eosapi v1.0.0
internal/utils v1.0.0
)
replace internal/eosapi => ./src/eosapi
replace internal/log => ./src/log
replace internal/utils => ./src/utils

11
go.sum
View file

@ -7,13 +7,21 @@ github.com/eosswedenorg-go/pid v1.0.0 h1:k1ra19cgWBHnX5gWQq+eUhNHIjT7hdhsYGp+Ovf
github.com/eosswedenorg-go/pid v1.0.0/go.mod h1:c9nVBDmo8pa3dVjrZjDUN4/DT1ChmfuCWXt6lHsagRc=
github.com/eosswedenorg-go/tcp_server v0.1.0 h1:nbXJK4sPSGn3zGPGWR2vdmj+s/Ywp58k7dZ9fuYNZlI=
github.com/eosswedenorg-go/tcp_server v0.1.0/go.mod h1:PZd1z/KzNlEpmKtW0Zu9dHJLs5PAMTNR3jPbMGWhZIw=
github.com/go-stack/stack v1.8.1 h1:ntEHSVwIt7PNXNpgPmVfMrNhLtgjlmnZha2kOpuRiDw=
github.com/go-stack/stack v1.8.1/go.mod h1:dcoOX6HbPZSZptuspn9bctJ+N/CnF5gGygcUP3XYfe4=
github.com/google/gofuzz v1.0.0/go.mod h1:dBl0BpW6vV/+mYPU4Po3pmUjxk6FQPldtuIdl/M65Eg=
github.com/imroc/req v0.3.2 h1:M/JkeU6RPmX+WYvT2vaaOL0K+q8ufL5LxwvJc4xeB4o=
github.com/imroc/req v0.3.2/go.mod h1:F+NZ+2EFSo6EFXdeIbpfE9hcC233id70kf0byW97Caw=
github.com/inconshreveable/log15 v0.0.0-20201112154412-8562bdadbbac h1:n1DqxAo4oWPMvH1+v+DLYlMCecgumhhgnxAPdqDIFHI=
github.com/inconshreveable/log15 v0.0.0-20201112154412-8562bdadbbac/go.mod h1:cOaXtrgN4ScfRrD9Bre7U1thNq5RtJ8ZoP4iXVGRj6o=
github.com/json-iterator/go v1.1.9 h1:9yzud/Ht36ygwatGx56VwCZtlI/2AD15T1X2sjSuGns=
github.com/json-iterator/go v1.1.9/go.mod h1:KdQUCv79m/52Kvf8AW2vK1V8akMuk1QjK/uOdHXbAo4=
github.com/liamylian/jsontime/v2 v2.0.0 h1:3if2kDW/boymUdO+4Qj/m4uaXMBSF6np9KEgg90cwH0=
github.com/liamylian/jsontime/v2 v2.0.0/go.mod h1:UHp1oAPqCBfspokvGmaGe0IAl2IgOpgOgDaKPcvcGGY=
github.com/mattn/go-colorable v0.1.12 h1:jF+Du6AlPIjs2BiUiQlKOX0rt3SujHxPnksPKZbaA40=
github.com/mattn/go-colorable v0.1.12/go.mod h1:u5H1YNBxpqRaxsYJYSkiCWKzEfiAb1Gb520KVy5xxl4=
github.com/mattn/go-isatty v0.0.14 h1:yVuAays6BHfxijgZPzw+3Zlu5yQgKGP2/hcQbHb7S9Y=
github.com/mattn/go-isatty v0.0.14/go.mod h1:7GGIvUiUoEMVVmxf/4nioHXj79iQHKdU27kJ6hsGG94=
github.com/modern-go/concurrent v0.0.0-20180228061459-e0a39a4cb421/go.mod h1:6dJC0mAP4ikYIbvyc7fijjWJddQyLn8Ig3JB5CqoB9Q=
github.com/modern-go/concurrent v0.0.0-20180306012644-bacd9c7ef1dd h1:TRLaZ9cD/w8PVh93nsPXa1VrQ6jlwL5oN8l14QlcNfg=
github.com/modern-go/concurrent v0.0.0-20180306012644-bacd9c7ef1dd/go.mod h1:6dJC0mAP4ikYIbvyc7fijjWJddQyLn8Ig3JB5CqoB9Q=
@ -27,3 +35,6 @@ github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZN
github.com/stretchr/objx v0.1.0/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME=
github.com/stretchr/testify v1.3.0 h1:TivCn/peBQ7UY8ooIcPgZFpTNSz0Q2U6UrFlUfqbe0Q=
github.com/stretchr/testify v1.3.0/go.mod h1:M5WIy9Dh21IEIfnGCwXGc5bZfKNJtfHm1UVUgZn+9EI=
golang.org/x/sys v0.0.0-20210630005230-0f9fa26af87c/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
golang.org/x/sys v0.0.0-20210927094055-39ccf1dd6fa6 h1:foEbQz/B0Oz6YIqu/69kfXPYeFQAuuMYFkjaqXzl5Wo=
golang.org/x/sys v0.0.0-20210927094055-39ccf1dd6fa6/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=

4
log Normal file
View file

@ -0,0 +1,4 @@
t=2022-01-03T17:30:52+0100 lvl=info msg="Process is starting" pid=46735
t=2022-01-03T17:30:52+0100 lvl=info msg="TCP Server started" addr=127.0.0.1:1337
t=2022-01-03T17:30:54+0100 lvl=info msg="API Check" version=v1 url=http://127.0.0.1:1234 block=5 status=failed
t=2022-01-03T17:30:54+0100 lvl=warn msg="API Error" message="Get \"http://127.0.0.1:1234/v1/chain/get_info\": dial tcp 127.0.0.1:1234: connect: connection refused"

View file

@ -1,3 +0,0 @@
module internal/log
go 1.14

View file

@ -1,29 +0,0 @@
package log
import (
"io"
stdlog "log"
)
// Create and export our different log functions.
// ---------------------------------------------------------
var (
Info logWrapper = stdWrapper
Notice logWrapper = createWrapper(noticeLogger)
Warning logWrapper = createWrapper(warningLogger)
Error logWrapper = createWrapper(errorLogger)
)
// SetWriter
// Configure the logger to use this writer.
// ---------------------------------------------------------
func SetWriter(handle io.Writer) {
// Info is standard logger.
stdlog.SetOutput(handle)
noticeLogger.SetOutput(handle)
warningLogger.SetOutput(handle)
errorLogger.SetOutput(handle)
}

View file

@ -1,83 +0,0 @@
package log
import (
"os"
stdlog "log"
)
// ---------------------------------------------------------
// Constants
// ---------------------------------------------------------
// Default flags to use.
const defaultFlags = stdlog.Lmsgprefix | stdlog.Ldate | stdlog.Ltime | stdlog.Lmicroseconds
// Prefixes
const (
InfoPrefix = "\033[1;34mINFO\033[0m : "
NoticePrefix = "\033[1;36mNOTICE\033[0m : "
WarningPrefix = "\033[1;33mWARN\033[0m : "
ErrorPrefix = "\033[1;31mERROR\033[0m : "
)
// ---------------------------------------------------------
// Function wrappers
// ---------------------------------------------------------
// Define logWrapper prototype
// Function that takes a format string and variadic number
// of arguments (like printf)
// ---------------------------------------------------------
type logWrapper func(format string, args ...interface{})
// Create a wrapper function.
// This creates a function wrapper around
// stdlog.Logger.Printf()
// ---------------------------------------------------------
func createWrapper(logger *stdlog.Logger) logWrapper {
return func(format string, args ...interface{}) {
logger.Printf(format, args...)
}
}
// Standard log wrapper
// Wrapper around stdlog.Printf()
// ---------------------------------------------------------
func stdWrapper(format string, args ...interface{}) {
stdlog.Printf(format, args...)
}
// ---------------------------------------------------------
// Logger objects.
// ---------------------------------------------------------
var (
// Info is standard logger. omitted here as we don't have direct access to the object.
warningLogger *stdlog.Logger = stdlog.New(os.Stdout, WarningPrefix, defaultFlags)
noticeLogger *stdlog.Logger = stdlog.New(os.Stdout, NoticePrefix, defaultFlags)
errorLogger *stdlog.Logger = stdlog.New(os.Stdout, ErrorPrefix, defaultFlags)
)
// ---------------------------------------------------------
// Initilize the module
// ---------------------------------------------------------
func init() {
// Info is standard logger.
// We are not allowed to access the standard
// Logger object, so we have to use the standalone functions.
stdlog.SetOutput(os.Stdout)
stdlog.SetPrefix(InfoPrefix)
stdlog.SetFlags(defaultFlags)
}

View file

@ -5,7 +5,7 @@ import (
"os"
"os/signal"
"syscall"
"internal/log"
log "github.com/inconshreveable/log15"
"github.com/eosswedenorg-go/pid"
"github.com/pborman/getopt/v2"
)
@ -22,6 +22,8 @@ var pidFile string
// File descriptor to the current log file.
var logfd *os.File
var logger log.Logger
// argv_listen_addr
// Parse listen address from command line.
// ---------------------------------------------------------
@ -51,19 +53,19 @@ func setLogFile() {
// Open file
fd, err := os.OpenFile(logFile, os.O_APPEND | os.O_CREATE | os.O_WRONLY, 0644)
if err != nil {
log.Error(err.Error())
logger.Error(err.Error())
}
// Try close if old descriptor is defined.
if logfd != nil {
if err = logfd.Close(); err != nil {
log.Error(err.Error())
logger.Error(err.Error())
}
}
// Update variable and set log writer.
logfd = fd
log.SetWriter(logfd)
logger.SetHandler(log.StreamHandler(logfd, log.LogfmtFormat()))
}
// signalEventLoop()
@ -96,9 +98,9 @@ func signalEventLoop() {
msg += "No Filedescriptor to update (most likely uses standard out/err streams)"
}
log.Info(msg)
logger.Info(msg)
default:
log.Warning("Unknown signal %s", sig)
logger.Warn("Unknown signal", "signal", sig)
}
}
}()
@ -111,6 +113,8 @@ func main() {
var version bool
var addr string;
logger = log.New()
// Command line parsing
getopt.FlagLong(&version, "version", 'v', "Print version")
getopt.FlagLong(&logFile, "log", 'l', "Path to log file", "file")
@ -127,13 +131,13 @@ func main() {
setLogFile()
}
log.Info("Process is starting with PID: %d", pid.Get())
logger.Info("Process is starting", "pid", pid.Get())
if len(pidFile) > 0 {
log.Info("Writing pidfile: %s", pidFile)
logger.Info("Writing pidfile", "file", pidFile)
err := pid.Save(pidFile)
if err != nil {
log.Error("Failed to write pidfile: %v", err)
logger.Error("Failed to write pidfile", "msg", err)
}
}
@ -142,7 +146,7 @@ func main() {
addr = argv_listen_addr()
log.Info("Listening on: %s", addr)
logger.Info("TCP Server started", "addr", addr)
// Start listening to TCP Connections
spawnTcpServer(addr);

View file

@ -5,7 +5,6 @@ import (
"time"
"strings"
"strconv"
"internal/log"
"internal/eosapi"
"internal/utils"
"github.com/eosswedenorg-go/haproxy"
@ -136,11 +135,11 @@ func onTcpMessage(c *tcp_server.Client, args string) {
status, msg = check_api(params, float64(block_time))
}
log.Info("Status %s - %s (%d blocks): %s",
version, params.Url, block_time / 2, status)
logger.Info("API Check", "version", version, "url", params.Url,
"block", block_time / 2, "status", status)
if status != haproxy.HealthCheckUp && len(msg) > 0 {
log.Warning(msg)
logger.Warn("API Check Failed", "message", msg)
}
// Report status to HAproxy
@ -152,7 +151,6 @@ func onTcpMessage(c *tcp_server.Client, args string) {
// ---------------------------------------------------------
func spawnTcpServer(addr string) {
server := tcp_server.New(addr)
server.OnMessage(onTcpMessage)
server.Listen()