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 (
|
import (
|
||||||
"fmt"
|
"fmt"
|
||||||
"os"
|
"os"
|
||||||
|
"runtime"
|
||||||
|
|
||||||
|
"github.com/decred/vspd/internal/version"
|
||||||
)
|
)
|
||||||
|
|
||||||
func main() {
|
func main() {
|
||||||
@ -23,7 +26,25 @@ func run() int {
|
|||||||
return 1
|
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 {
|
if err != nil {
|
||||||
fmt.Fprintf(os.Stderr, "newVspd error: %v\n", err)
|
fmt.Fprintf(os.Stderr, "newVspd error: %v\n", err)
|
||||||
return 1
|
return 1
|
||||||
|
|||||||
@ -8,7 +8,6 @@ import (
|
|||||||
"context"
|
"context"
|
||||||
"errors"
|
"errors"
|
||||||
"fmt"
|
"fmt"
|
||||||
"runtime"
|
|
||||||
"strings"
|
"strings"
|
||||||
"sync"
|
"sync"
|
||||||
"time"
|
"time"
|
||||||
@ -56,14 +55,13 @@ type vspd struct {
|
|||||||
|
|
||||||
// newVspd creates the essential resources required by vspd - a database, logger
|
// 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.
|
// 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.
|
// Open database.
|
||||||
db, err := database.Open(cfg.dbPath, cfg.logger(" DB"), maxVoteChangeRecords)
|
db, err := database.Open(cfg.dbPath, cfg.logger(" DB"), maxVoteChangeRecords)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return nil, fmt.Errorf("failed to open database: %w", err)
|
return nil, fmt.Errorf("failed to open database: %w", err)
|
||||||
}
|
}
|
||||||
|
|
||||||
log := cfg.logger("VSP")
|
|
||||||
rpcLog := cfg.logger("RPC")
|
rpcLog := cfg.logger("RPC")
|
||||||
|
|
||||||
// Create a channel to receive blockConnected notifications from dcrd.
|
// 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
|
// run starts all of vspds background services including the web server, and
|
||||||
// stops all started services when a shutdown is requested.
|
// stops all started services when a shutdown is requested.
|
||||||
func (v *vspd) run() int {
|
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 shutdown tasks.
|
||||||
defer v.log.Criticalf("Shutdown complete")
|
|
||||||
const writeBackup = true
|
const writeBackup = true
|
||||||
defer v.db.Close(writeBackup)
|
defer v.db.Close(writeBackup)
|
||||||
defer v.dcrd.Close()
|
defer v.dcrd.Close()
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user