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:
parent
107df930f1
commit
1d8b47762e
8 changed files with 38 additions and 137 deletions
13
go.mod
13
go.mod
|
|
@ -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
11
go.sum
|
|
@ -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
4
log
Normal 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"
|
||||
|
|
@ -1,3 +0,0 @@
|
|||
module internal/log
|
||||
|
||||
go 1.14
|
||||
|
|
@ -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)
|
||||
}
|
||||
|
|
@ -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)
|
||||
}
|
||||
24
src/main.go
24
src/main.go
|
|
@ -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);
|
||||
|
|
|
|||
|
|
@ -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()
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue