1
0
Fork 0
mirror of https://github.com/eosswedenorg/antelope-api-healthcheck synced 2026-06-19 05:10:02 +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

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()