59 lines
1.4 KiB
Go
59 lines
1.4 KiB
Go
|
package log
|
||
|
|
||
|
import (
|
||
|
"fmt"
|
||
|
"os"
|
||
|
"time"
|
||
|
|
||
|
"github.com/jmoiron/sqlx"
|
||
|
)
|
||
|
|
||
|
type (
|
||
|
Logger struct {
|
||
|
DB *sqlx.DB
|
||
|
}
|
||
|
|
||
|
Log struct {
|
||
|
ID string `json:"id" db:"id"`
|
||
|
Type string `json:"type" db:"type"`
|
||
|
Content string `json:"content" db:"content"`
|
||
|
CreatedAt time.Time `json:"created_at" db:"created_at"`
|
||
|
}
|
||
|
)
|
||
|
|
||
|
const (
|
||
|
TYPE_ACCOUNT = "account"
|
||
|
)
|
||
|
|
||
|
func (self *Logger) Info(logType string, format string, args ...any) {
|
||
|
fmt.Printf(fmt.Sprintf("[%s] INFO: %s", logType, format), args...)
|
||
|
// TODO: push logs to DB
|
||
|
}
|
||
|
|
||
|
func (self *Logger) Warn(logType string, format string, args ...any) {
|
||
|
fmt.Fprintf(os.Stderr, fmt.Sprintf("[%s] WARN: %s", logType, format), args...)
|
||
|
// TODO: push logs to DB
|
||
|
}
|
||
|
|
||
|
func (self *Logger) Fatal(logType string, format string, args ...any) {
|
||
|
fmt.Fprintf(os.Stderr, fmt.Sprintf("[%s] FATAL: %s", logType, format), args...)
|
||
|
// we won't need to push fatal logs to DB, as these usually precede a panic or crash
|
||
|
}
|
||
|
|
||
|
func (self *Logger) Fetch(id string) *Log {
|
||
|
// TODO: log fetch
|
||
|
return nil
|
||
|
}
|
||
|
|
||
|
func (self *Logger) Search(typeFilters []string, content string, offset int, limit int) []Log {
|
||
|
// TODO: log search
|
||
|
return []Log{}
|
||
|
}
|
||
|
|
||
|
func (self *Logger) Delete(id string) error {
|
||
|
// TODO: log deletion
|
||
|
// consider: logging the deletion of logs?
|
||
|
// or just not deleting logs at all
|
||
|
return nil
|
||
|
}
|