vspd: Move start/stop logging to main func.
This ensures that the startup/shutdown messages are always the first/last thing to be logged.
This commit is contained in:
parent
e38032ba2f
commit
8038a0ea46
@ -7,6 +7,9 @@ package main
|
||||
import (
|
||||
"fmt"
|
||||
"os"
|
||||
"runtime"
|
||||
|
||||
"github.com/decred/vspd/internal/version"
|
||||
)
|
||||
|
||||
func main() {
|
||||
@ -23,7 +26,25 @@ func run() int {
|
||||
return 1
|
||||
}
|
||||
|
||||
vspd, err := newVspd(cfg)
|
||||
log := cfg.logger("VSP")
|
||||
|
||||
defer log.Criticalf("Shutdown complete")
|
||||
log.Criticalf("Version %s (Go version %s %s/%s)", version.String(),
|
||||
runtime.Version(), runtime.GOOS, runtime.GOARCH)
|
||||
|
||||
if cfg.netParams == &mainNetParams && version.IsPreRelease() {
|
||||
log.Warnf("")
|
||||
log.Warnf("\tWARNING: This is a pre-release version of vspd which should not be used on mainnet.")
|
||||
log.Warnf("")
|
||||
}
|
||||
|
||||
if cfg.VspClosed {
|
||||
log.Warnf("")
|
||||
log.Warnf("\tWARNING: Config --vspclosed is set. This will prevent vspd from accepting new tickets.")
|
||||
log.Warnf("")
|
||||
}
|
||||
|
||||
vspd, err := newVspd(cfg, log)
|
||||
if err != nil {
|
||||
fmt.Fprintf(os.Stderr, "newVspd error: %v\n", err)
|
||||
return 1
|
||||
|
||||
@ -8,7 +8,6 @@ import (
|
||||
"context"
|
||||
"errors"
|
||||
"fmt"
|
||||
"runtime"
|
||||
"strings"
|
||||
"sync"
|
||||
"time"
|
||||
@ -56,14 +55,13 @@ type vspd struct {
|
||||
|
||||
// newVspd creates the essential resources required by vspd - a database, logger
|
||||
// and RPC clients - then returns an instance of vspd which is ready to be run.
|
||||
func newVspd(cfg *config) (*vspd, error) {
|
||||
func newVspd(cfg *config, log slog.Logger) (*vspd, error) {
|
||||
// Open database.
|
||||
db, err := database.Open(cfg.dbPath, cfg.logger(" DB"), maxVoteChangeRecords)
|
||||
if err != nil {
|
||||
return nil, fmt.Errorf("failed to open database: %w", err)
|
||||
}
|
||||
|
||||
log := cfg.logger("VSP")
|
||||
rpcLog := cfg.logger("RPC")
|
||||
|
||||
// Create a channel to receive blockConnected notifications from dcrd.
|
||||
@ -92,24 +90,7 @@ func newVspd(cfg *config) (*vspd, error) {
|
||||
// run starts all of vspds background services including the web server, and
|
||||
// stops all started services when a shutdown is requested.
|
||||
func (v *vspd) run() int {
|
||||
v.log.Criticalf("Version %s (Go version %s %s/%s)", version.String(), runtime.Version(),
|
||||
runtime.GOOS, runtime.GOARCH)
|
||||
|
||||
if v.cfg.netParams == &mainNetParams &&
|
||||
version.IsPreRelease() {
|
||||
v.log.Warnf("")
|
||||
v.log.Warnf("\tWARNING: This is a pre-release version of vspd which should not be used on mainnet.")
|
||||
v.log.Warnf("")
|
||||
}
|
||||
|
||||
if v.cfg.VspClosed {
|
||||
v.log.Warnf("")
|
||||
v.log.Warnf("\tWARNING: Config --vspclosed is set. This will prevent vspd from accepting new tickets.")
|
||||
v.log.Warnf("")
|
||||
}
|
||||
|
||||
// Defer shutdown tasks.
|
||||
defer v.log.Criticalf("Shutdown complete")
|
||||
const writeBackup = true
|
||||
defer v.db.Close(writeBackup)
|
||||
defer v.dcrd.Close()
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user