mirror of
https://codeberg.org/scip/anydb.git
synced 2025-12-17 04:20:59 +01:00
add bolt logger interface with slog for debugging (#22)
This commit is contained in:
4
anydb.1
4
anydb.1
@@ -1,4 +1,4 @@
|
|||||||
.\" Automatically generated by Pod::Man 4.14 (Pod::Simple 3.42)
|
.\" Automatically generated by Pod::Man 4.14 (Pod::Simple 3.40)
|
||||||
.\"
|
.\"
|
||||||
.\" Standard preamble:
|
.\" Standard preamble:
|
||||||
.\" ========================================================================
|
.\" ========================================================================
|
||||||
@@ -133,7 +133,7 @@
|
|||||||
.\" ========================================================================
|
.\" ========================================================================
|
||||||
.\"
|
.\"
|
||||||
.IX Title "ANYDB 1"
|
.IX Title "ANYDB 1"
|
||||||
.TH ANYDB 1 "2025-02-10" "1" "User Commands"
|
.TH ANYDB 1 "2025-02-11" "1" "User Commands"
|
||||||
.\" For nroff, turn off justification. Always turn off hyphenation; it makes
|
.\" For nroff, turn off justification. Always turn off hyphenation; it makes
|
||||||
.\" way too many mistakes in technical documents.
|
.\" way too many mistakes in technical documents.
|
||||||
.if n .ad l
|
.if n .ad l
|
||||||
|
|||||||
11
app/db.go
11
app/db.go
@@ -27,6 +27,8 @@ import (
|
|||||||
"strings"
|
"strings"
|
||||||
"time"
|
"time"
|
||||||
|
|
||||||
|
common "github.com/tlinden/anydb/common"
|
||||||
|
|
||||||
bolt "go.etcd.io/bbolt"
|
bolt "go.etcd.io/bbolt"
|
||||||
"google.golang.org/protobuf/proto"
|
"google.golang.org/protobuf/proto"
|
||||||
timestamppb "google.golang.org/protobuf/types/known/timestamppb"
|
timestamppb "google.golang.org/protobuf/types/known/timestamppb"
|
||||||
@@ -93,7 +95,14 @@ func (db *DB) Open() error {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
b, err := bolt.Open(db.Dbfile, 0600, nil)
|
var opts *bolt.Options
|
||||||
|
|
||||||
|
if db.Debug {
|
||||||
|
log := common.Slogger{Logger: slog.Default()}
|
||||||
|
opts = &bolt.Options{Logger: log}
|
||||||
|
}
|
||||||
|
|
||||||
|
b, err := bolt.Open(db.Dbfile, 0600, opts)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return fmt.Errorf("failed to open DB %s: %w", db.Dbfile, err)
|
return fmt.Errorf("failed to open DB %s: %w", db.Dbfile, err)
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -2,8 +2,8 @@
|
|||||||
|
|
||||||
// Code generated by protoc-gen-go. DO NOT EDIT.
|
// Code generated by protoc-gen-go. DO NOT EDIT.
|
||||||
// versions:
|
// versions:
|
||||||
// protoc-gen-go v1.36.1
|
// protoc-gen-go v1.36.5
|
||||||
// protoc v3.21.12
|
// protoc v4.24.4
|
||||||
// source: app/dbentry.proto
|
// source: app/dbentry.proto
|
||||||
|
|
||||||
package app
|
package app
|
||||||
@@ -14,6 +14,7 @@ import (
|
|||||||
timestamppb "google.golang.org/protobuf/types/known/timestamppb"
|
timestamppb "google.golang.org/protobuf/types/known/timestamppb"
|
||||||
reflect "reflect"
|
reflect "reflect"
|
||||||
sync "sync"
|
sync "sync"
|
||||||
|
unsafe "unsafe"
|
||||||
)
|
)
|
||||||
|
|
||||||
const (
|
const (
|
||||||
@@ -133,7 +134,7 @@ func (x *DbEntry) GetValue() string {
|
|||||||
|
|
||||||
var File_app_dbentry_proto protoreflect.FileDescriptor
|
var File_app_dbentry_proto protoreflect.FileDescriptor
|
||||||
|
|
||||||
var file_app_dbentry_proto_rawDesc = []byte{
|
var file_app_dbentry_proto_rawDesc = string([]byte{
|
||||||
0x0a, 0x11, 0x61, 0x70, 0x70, 0x2f, 0x64, 0x62, 0x65, 0x6e, 0x74, 0x72, 0x79, 0x2e, 0x70, 0x72,
|
0x0a, 0x11, 0x61, 0x70, 0x70, 0x2f, 0x64, 0x62, 0x65, 0x6e, 0x74, 0x72, 0x79, 0x2e, 0x70, 0x72,
|
||||||
0x6f, 0x74, 0x6f, 0x12, 0x03, 0x61, 0x70, 0x70, 0x1a, 0x1f, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65,
|
0x6f, 0x74, 0x6f, 0x12, 0x03, 0x61, 0x70, 0x70, 0x1a, 0x1f, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65,
|
||||||
0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2f, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74,
|
0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2f, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74,
|
||||||
@@ -156,16 +157,16 @@ var file_app_dbentry_proto_rawDesc = []byte{
|
|||||||
0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x74, 0x6c, 0x69, 0x6e, 0x64, 0x65,
|
0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x74, 0x6c, 0x69, 0x6e, 0x64, 0x65,
|
||||||
0x6e, 0x2f, 0x61, 0x6e, 0x79, 0x64, 0x62, 0x2f, 0x61, 0x70, 0x70, 0x62, 0x06, 0x70, 0x72, 0x6f,
|
0x6e, 0x2f, 0x61, 0x6e, 0x79, 0x64, 0x62, 0x2f, 0x61, 0x70, 0x70, 0x62, 0x06, 0x70, 0x72, 0x6f,
|
||||||
0x74, 0x6f, 0x33,
|
0x74, 0x6f, 0x33,
|
||||||
}
|
})
|
||||||
|
|
||||||
var (
|
var (
|
||||||
file_app_dbentry_proto_rawDescOnce sync.Once
|
file_app_dbentry_proto_rawDescOnce sync.Once
|
||||||
file_app_dbentry_proto_rawDescData = file_app_dbentry_proto_rawDesc
|
file_app_dbentry_proto_rawDescData []byte
|
||||||
)
|
)
|
||||||
|
|
||||||
func file_app_dbentry_proto_rawDescGZIP() []byte {
|
func file_app_dbentry_proto_rawDescGZIP() []byte {
|
||||||
file_app_dbentry_proto_rawDescOnce.Do(func() {
|
file_app_dbentry_proto_rawDescOnce.Do(func() {
|
||||||
file_app_dbentry_proto_rawDescData = protoimpl.X.CompressGZIP(file_app_dbentry_proto_rawDescData)
|
file_app_dbentry_proto_rawDescData = protoimpl.X.CompressGZIP(unsafe.Slice(unsafe.StringData(file_app_dbentry_proto_rawDesc), len(file_app_dbentry_proto_rawDesc)))
|
||||||
})
|
})
|
||||||
return file_app_dbentry_proto_rawDescData
|
return file_app_dbentry_proto_rawDescData
|
||||||
}
|
}
|
||||||
@@ -193,7 +194,7 @@ func file_app_dbentry_proto_init() {
|
|||||||
out := protoimpl.TypeBuilder{
|
out := protoimpl.TypeBuilder{
|
||||||
File: protoimpl.DescBuilder{
|
File: protoimpl.DescBuilder{
|
||||||
GoPackagePath: reflect.TypeOf(x{}).PkgPath(),
|
GoPackagePath: reflect.TypeOf(x{}).PkgPath(),
|
||||||
RawDescriptor: file_app_dbentry_proto_rawDesc,
|
RawDescriptor: unsafe.Slice(unsafe.StringData(file_app_dbentry_proto_rawDesc), len(file_app_dbentry_proto_rawDesc)),
|
||||||
NumEnums: 0,
|
NumEnums: 0,
|
||||||
NumMessages: 1,
|
NumMessages: 1,
|
||||||
NumExtensions: 0,
|
NumExtensions: 0,
|
||||||
@@ -204,7 +205,6 @@ func file_app_dbentry_proto_init() {
|
|||||||
MessageInfos: file_app_dbentry_proto_msgTypes,
|
MessageInfos: file_app_dbentry_proto_msgTypes,
|
||||||
}.Build()
|
}.Build()
|
||||||
File_app_dbentry_proto = out.File
|
File_app_dbentry_proto = out.File
|
||||||
file_app_dbentry_proto_rawDesc = nil
|
|
||||||
file_app_dbentry_proto_goTypes = nil
|
file_app_dbentry_proto_goTypes = nil
|
||||||
file_app_dbentry_proto_depIdxs = nil
|
file_app_dbentry_proto_depIdxs = nil
|
||||||
}
|
}
|
||||||
|
|||||||
23
common/logger.go
Normal file
23
common/logger.go
Normal file
@@ -0,0 +1,23 @@
|
|||||||
|
package common
|
||||||
|
|
||||||
|
import (
|
||||||
|
"fmt"
|
||||||
|
"log/slog"
|
||||||
|
)
|
||||||
|
|
||||||
|
type Slogger struct {
|
||||||
|
*slog.Logger
|
||||||
|
}
|
||||||
|
|
||||||
|
func (l Slogger) Debug(v ...interface{}) {}
|
||||||
|
func (l Slogger) Debugf(format string, v ...interface{}) { l.Logger.Debug(fmt.Sprintf(format, v...)) }
|
||||||
|
func (l Slogger) Error(v ...interface{}) {}
|
||||||
|
func (l Slogger) Errorf(format string, v ...interface{}) { l.Logger.Error(fmt.Sprintf(format, v...)) }
|
||||||
|
func (l Slogger) Info(v ...interface{}) {}
|
||||||
|
func (l Slogger) Infof(format string, v ...interface{}) { l.Logger.Info(fmt.Sprintf(format, v...)) }
|
||||||
|
func (l Slogger) Warning(v ...interface{}) {}
|
||||||
|
func (l Slogger) Warningf(format string, v ...interface{}) { l.Logger.Warn(fmt.Sprintf(format, v...)) }
|
||||||
|
func (l Slogger) Fatal(v ...interface{}) {}
|
||||||
|
func (l Slogger) Fatalf(format string, v ...interface{}) { l.Logger.Error(fmt.Sprintf(format, v...)) }
|
||||||
|
func (l Slogger) Panic(v ...interface{}) {}
|
||||||
|
func (l Slogger) Panicf(format string, v ...interface{}) { l.Logger.Error(fmt.Sprintf(format, v...)) }
|
||||||
Reference in New Issue
Block a user