Skip to content

Commit 4571362

Browse files
committed
use latest log format
1 parent bafbc3d commit 4571362

File tree

7 files changed

+60
-48
lines changed

7 files changed

+60
-48
lines changed

config.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -169,7 +169,7 @@ func SaveConfig() error {
169169
configLock.Lock()
170170
defer configLock.Unlock()
171171

172-
logger.Tracef("Saving config to %s", configPath)
172+
logger.Trace().Str("path", configPath).Msg("Saving config")
173173

174174
file, err := os.Create(configPath)
175175
if err != nil {

internal/websecure/log.go

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,9 @@
11
package websecure
22

3-
import "github.com/pion/logging"
3+
import (
4+
"os"
45

5-
var defaultLogger = logging.NewDefaultLoggerFactory().NewLogger("websecure")
6+
"github.com/rs/zerolog"
7+
)
8+
9+
var defaultLogger = zerolog.New(os.Stdout).With().Str("component", "websecure").Logger()

internal/websecure/selfsign.go

Lines changed: 11 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -11,15 +11,15 @@ import (
1111
"strings"
1212
"time"
1313

14-
"github.com/pion/logging"
14+
"github.com/rs/zerolog"
1515
"golang.org/x/net/idna"
1616
)
1717

1818
const selfSignerCAMagicName = "__ca__"
1919

2020
type SelfSigner struct {
2121
store *CertStore
22-
log logging.LeveledLogger
22+
log *zerolog.Logger
2323

2424
caInfo pkix.Name
2525

@@ -30,7 +30,7 @@ type SelfSigner struct {
3030

3131
func NewSelfSigner(
3232
store *CertStore,
33-
log logging.LeveledLogger,
33+
log *zerolog.Logger,
3434
defaultDomain,
3535
defaultOrg,
3636
defaultOU,
@@ -64,20 +64,20 @@ func (s *SelfSigner) createSelfSignedCert(hostname string) *tls.Certificate {
6464
if hostname != selfSignerCAMagicName {
6565
ca = s.getCA()
6666
if ca == nil {
67-
s.log.Errorf("Failed to get CA certificate")
67+
s.log.Error().Msg("Failed to get CA certificate")
6868
return nil
6969
}
7070
}
7171

72-
s.log.Infof("Creating self-signed certificate for %s", hostname)
72+
s.log.Info().Str("hostname", hostname).Msg("Creating self-signed certificate")
7373

7474
// lock the store while creating the certificate (do not move upwards)
7575
s.store.certLock.Lock()
7676
defer s.store.certLock.Unlock()
7777

7878
priv, err := ecdsa.GenerateKey(elliptic.P256(), rand.Reader)
7979
if err != nil {
80-
s.log.Errorf("Failed to generate private key: %v", err)
80+
s.log.Error().Err(err).Msg("Failed to generate private key")
8181
return nil
8282
}
8383

@@ -86,7 +86,7 @@ func (s *SelfSigner) createSelfSignedCert(hostname string) *tls.Certificate {
8686

8787
serialNumber, err := generateSerialNumber()
8888
if err != nil {
89-
s.log.Errorf("Failed to generate serial number: %v", err)
89+
s.log.Error().Err(err).Msg("Failed to generate serial number")
9090
return nil
9191
}
9292

@@ -139,15 +139,15 @@ func (s *SelfSigner) createSelfSignedCert(hostname string) *tls.Certificate {
139139
if ca != nil {
140140
parent, err = x509.ParseCertificate(ca.Certificate[0])
141141
if err != nil {
142-
s.log.Errorf("Failed to parse parent certificate: %v", err)
142+
s.log.Error().Err(err).Msg("Failed to parse parent certificate")
143143
return nil
144144
}
145145
parentPriv = ca.PrivateKey.(*ecdsa.PrivateKey)
146146
}
147147

148148
certBytes, err := x509.CreateCertificate(rand.Reader, &cert, parent, &priv.PublicKey, parentPriv)
149149
if err != nil {
150-
s.log.Errorf("Failed to create certificate: %v", err)
150+
s.log.Error().Err(err).Msg("Failed to create certificate")
151151
return nil
152152
}
153153

@@ -175,12 +175,12 @@ func (s *SelfSigner) GetCertificate(info *tls.ClientHelloInfo) (*tls.Certificate
175175
hostname = strings.Split(info.Conn.LocalAddr().String(), ":")[0]
176176
}
177177

178-
s.log.Infof("TLS handshake for %s, SupportedProtos: %v", hostname, info.SupportedProtos)
178+
s.log.Info().Str("hostname", hostname).Strs("supported_protos", info.SupportedProtos).Msg("TLS handshake")
179179

180180
// convert hostname to punycode
181181
h, err := idna.Lookup.ToASCII(hostname)
182182
if err != nil {
183-
s.log.Warnf("Hostname %s is not valid: %w, from %s", hostname, err, info.Conn.RemoteAddr())
183+
s.log.Warn().Str("hostname", hostname).Err(err).Str("remote_addr", info.Conn.RemoteAddr().String()).Msg("Hostname is not valid")
184184
hostname = s.DefaultDomain
185185
} else {
186186
hostname = h

internal/websecure/store.go

Lines changed: 20 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@ import (
88
"strings"
99
"sync"
1010

11-
"github.com/pion/logging"
11+
"github.com/rs/zerolog"
1212
)
1313

1414
type CertStore struct {
@@ -17,16 +17,20 @@ type CertStore struct {
1717

1818
storePath string
1919

20-
log logging.LeveledLogger
20+
log *zerolog.Logger
2121
}
2222

23-
func NewCertStore(storePath string) *CertStore {
23+
func NewCertStore(storePath string, log *zerolog.Logger) *CertStore {
24+
if log == nil {
25+
log = &defaultLogger
26+
}
27+
2428
return &CertStore{
2529
certificates: make(map[string]*tls.Certificate),
2630
certLock: &sync.Mutex{},
2731

2832
storePath: storePath,
29-
log: defaultLogger,
33+
log: log,
3034
}
3135
}
3236

@@ -42,7 +46,7 @@ func (s *CertStore) ensureStorePath() error {
4246
}
4347

4448
if os.IsNotExist(err) {
45-
s.log.Tracef("TLS store directory does not exist, creating directory")
49+
s.log.Trace().Str("path", s.storePath).Msg("TLS store directory does not exist, creating directory")
4650
err = os.MkdirAll(s.storePath, 0755)
4751
if err != nil {
4852
return fmt.Errorf("Failed to create TLS store path: %w", err)
@@ -56,13 +60,13 @@ func (s *CertStore) ensureStorePath() error {
5660
func (s *CertStore) LoadCertificates() {
5761
err := s.ensureStorePath()
5862
if err != nil {
59-
s.log.Errorf(err.Error()) //nolint:errcheck
63+
s.log.Error().Err(err).Msg("Failed to ensure store path")
6064
return
6165
}
6266

6367
files, err := os.ReadDir(s.storePath)
6468
if err != nil {
65-
s.log.Errorf("Failed to read TLS directory: %v", err)
69+
s.log.Error().Err(err).Msg("Failed to read TLS directory")
6670
return
6771
}
6872

@@ -86,13 +90,13 @@ func (s *CertStore) loadCertificate(hostname string) {
8690

8791
cert, err := tls.LoadX509KeyPair(crtFile, keyFile)
8892
if err != nil {
89-
s.log.Errorf("Failed to load certificate for %s: %w", hostname, err)
93+
s.log.Error().Err(err).Str("hostname", hostname).Msg("Failed to load certificate")
9094
return
9195
}
9296

9397
s.certificates[hostname] = &cert
9498

95-
s.log.Infof("Loaded certificate for %s", hostname)
99+
s.log.Info().Str("hostname", hostname).Msg("Loaded certificate")
96100
}
97101

98102
// GetCertificate returns the certificate for the given hostname
@@ -119,15 +123,15 @@ func (s *CertStore) ValidateAndSaveCertificate(hostname string, cert string, key
119123
// add recover to avoid panic
120124
defer func() {
121125
if r := recover(); r != nil {
122-
s.log.Errorf("Failed to verify hostname: %v", r)
126+
s.log.Error().Interface("recovered", r).Msg("Failed to verify hostname")
123127
}
124128
}()
125129

126130
if err = tlsCert.Leaf.VerifyHostname(hostname); err != nil {
127131
if !ignoreWarning {
128132
return nil, fmt.Errorf("Certificate does not match hostname: %w", err)
129133
}
130-
s.log.Warnf("Certificate does not match hostname: %v", err)
134+
s.log.Warn().Err(err).Msg("Certificate does not match hostname")
131135
}
132136
}
133137

@@ -144,28 +148,28 @@ func (s *CertStore) saveCertificate(hostname string) {
144148
// check if certificate already exists
145149
tlsCert := s.certificates[hostname]
146150
if tlsCert == nil {
147-
s.log.Errorf("Certificate for %s does not exist, skipping saving certificate", hostname)
151+
s.log.Error().Str("hostname", hostname).Msg("Certificate for hostname does not exist, skipping saving certificate")
148152
return
149153
}
150154

151155
err := s.ensureStorePath()
152156
if err != nil {
153-
s.log.Errorf(err.Error()) //nolint:errcheck
157+
s.log.Error().Err(err).Msg("Failed to ensure store path")
154158
return
155159
}
156160

157161
keyFile := path.Join(s.storePath, hostname+".key")
158162
crtFile := path.Join(s.storePath, hostname+".crt")
159163

160164
if err := keyToFile(tlsCert, keyFile); err != nil {
161-
s.log.Errorf(err.Error())
165+
s.log.Error().Err(err).Msg("Failed to save key file")
162166
return
163167
}
164168

165169
if err := certToFile(tlsCert, crtFile); err != nil {
166-
s.log.Errorf(err.Error())
170+
s.log.Error().Err(err).Msg("Failed to save certificate")
167171
return
168172
}
169173

170-
s.log.Infof("Saved certificate for %s", hostname)
174+
s.log.Info().Str("hostname", hostname).Msg("Saved certificate")
171175
}

jsonrpc.go

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -95,7 +95,7 @@ func onRPCMessage(message webrtc.DataChannelMessage, session *Session) {
9595
return
9696
}
9797

98-
logger.Tracef("Received RPC request: Method=%s, Params=%v, ID=%w", request.Method, request.Params, request.ID)
98+
logger.Trace().Str("method", request.Method).Interface("params", request.Params).Interface("id", request.ID).Msg("Received RPC request")
9999
handler, ok := rpcHandlers[request.Method]
100100
if !ok {
101101
errorResponse := JSONRPCResponse{
@@ -110,7 +110,7 @@ func onRPCMessage(message webrtc.DataChannelMessage, session *Session) {
110110
return
111111
}
112112

113-
logger.Tracef("Calling RPC handler: %s, ID=%w", request.Method, request.ID)
113+
logger.Trace().Str("method", request.Method).Interface("id", request.ID).Msg("Calling RPC handler")
114114
result, err := callRPCHandler(handler, request.Params)
115115
if err != nil {
116116
errorResponse := JSONRPCResponse{
@@ -126,7 +126,7 @@ func onRPCMessage(message webrtc.DataChannelMessage, session *Session) {
126126
return
127127
}
128128

129-
logger.Tracef("RPC handler returned: %v, ID=%w", result, request.ID)
129+
logger.Trace().Interface("result", result).Interface("id", request.ID).Msg("RPC handler returned")
130130
response := JSONRPCResponse{
131131
JSONRPC: "2.0",
132132
Result: result,
@@ -144,7 +144,7 @@ func rpcGetDeviceID() (string, error) {
144144
}
145145

146146
func rpcReboot(force bool) error {
147-
logger.Info("Got reboot request from JSONRPC, rebooting...")
147+
logger.Info().Msg("Got reboot request from JSONRPC, rebooting...")
148148

149149
args := []string{}
150150
if force {
@@ -154,7 +154,7 @@ func rpcReboot(force bool) error {
154154
cmd := exec.Command("reboot", args...)
155155
err := cmd.Start()
156156
if err != nil {
157-
logger.Errorf("failed to reboot: %v", err)
157+
logger.Error().Err(err).Msg("failed to reboot")
158158
return fmt.Errorf("failed to reboot: %w", err)
159159
}
160160

log.go

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -50,6 +50,7 @@ var (
5050
displayLogger = getLogger("display")
5151
usbLogger = getLogger("usb")
5252
ginLogger = getLogger("gin")
53+
websecureLogger = getLogger("websecure")
5354
)
5455

5556
func updateLogLevel() {

web_tls.go

Lines changed: 16 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -35,15 +35,15 @@ type TLSState struct {
3535

3636
func initCertStore() {
3737
if certStore != nil {
38-
logger.Warnf("TLS store already initialized, it should not be initialized again")
38+
websecureLogger.Warn().Msg("TLS store already initialized, it should not be initialized again")
3939
return
4040
}
41-
certStore = websecure.NewCertStore(tlsStorePath)
41+
certStore = websecure.NewCertStore(tlsStorePath, &websecureLogger)
4242
certStore.LoadCertificates()
4343

4444
certSigner = websecure.NewSelfSigner(
4545
certStore,
46-
logger,
46+
&websecureLogger,
4747
webSecureSelfSignedDefaultDomain,
4848
webSecureSelfSignedOrganization,
4949
webSecureSelfSignedOU,
@@ -61,7 +61,7 @@ func getCertificate(info *tls.ClientHelloInfo) (*tls.Certificate, error) {
6161
return certStore.GetCertificate(webSecureCustomCertificateName), nil
6262
}
6363

64-
logger.Infof("TLS mode is disabled but WebSecure is running, returning nil")
64+
websecureLogger.Info().Msg("TLS mode is disabled but WebSecure is running, returning nil")
6565
return nil, nil
6666
}
6767

@@ -123,15 +123,15 @@ func setTLSState(s TLSState) error {
123123
}
124124

125125
if !isChanged {
126-
logger.Tracef("TLS enabled state is not changed, not starting/stopping websecure server")
126+
websecureLogger.Info().Msg("TLS enabled state is not changed, not starting/stopping websecure server")
127127
return nil
128128
}
129129

130130
if config.TLSMode == "" {
131-
logger.Tracef("Stopping websecure server, as TLS mode is disabled")
131+
websecureLogger.Info().Msg("Stopping websecure server, as TLS mode is disabled")
132132
stopWebSecureServer()
133133
} else {
134-
logger.Tracef("Starting websecure server, as TLS mode is enabled")
134+
websecureLogger.Info().Msg("Starting websecure server, as TLS mode is enabled")
135135
startWebSecureServer()
136136
}
137137

@@ -166,12 +166,15 @@ func runWebSecureServer() {
166166
GetCertificate: getCertificate,
167167
},
168168
}
169-
logger.Infof("Starting websecure server on %s", webSecureListen)
169+
websecureLogger.Info().Str("listen", webSecureListen).Msg("Starting websecure server")
170170

171171
go func() {
172172
for _ = range stopTLS {
173-
logger.Infof("Shutting down websecure server")
174-
server.Shutdown(context.Background())
173+
websecureLogger.Info().Msg("Shutting down websecure server")
174+
err := server.Shutdown(context.Background())
175+
if err != nil {
176+
websecureLogger.Error().Err(err).Msg("Failed to shutdown websecure server")
177+
}
175178
}
176179
}()
177180

@@ -183,23 +186,23 @@ func runWebSecureServer() {
183186

184187
func stopWebSecureServer() {
185188
if !tlsStarted {
186-
logger.Warnf("Websecure server is not running, not stopping it")
189+
websecureLogger.Info().Msg("Websecure server is not running, not stopping it")
187190
return
188191
}
189192
stopTLS <- struct{}{}
190193
}
191194

192195
func startWebSecureServer() {
193196
if tlsStarted {
194-
logger.Warnf("Websecure server is already running, not starting it again")
197+
websecureLogger.Info().Msg("Websecure server is already running, not starting it again")
195198
return
196199
}
197200
startTLS <- struct{}{}
198201
}
199202

200203
func RunWebSecureServer() {
201204
for _ = range startTLS {
202-
logger.Tracef("Starting websecure server, as we have received a start signal")
205+
websecureLogger.Info().Msg("Starting websecure server, as we have received a start signal")
203206
if certStore == nil {
204207
initCertStore()
205208
}

0 commit comments

Comments
 (0)