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:
parent
107df930f1
commit
1d8b47762e
8 changed files with 38 additions and 137 deletions
|
|
@ -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