logs in use; new audit log panel!
This commit is contained in:
parent
1397274967
commit
d9b71381b0
16 changed files with 418 additions and 75 deletions
37
log/log.go
37
log/log.go
|
@ -25,8 +25,10 @@ type (
|
|||
const (
|
||||
TYPE_ACCOUNT string = "account"
|
||||
TYPE_MUSIC string = "music"
|
||||
TYPE_ARTIST string = "artist"
|
||||
TYPE_BLOG string = "blog"
|
||||
TYPE_ARTWORK string = "artwork"
|
||||
TYPE_FILES string = "files"
|
||||
TYPE_MISC string = "misc"
|
||||
)
|
||||
|
||||
|
@ -40,7 +42,7 @@ const DEFAULT_LOG_PAGE_LENGTH = 25
|
|||
|
||||
func (self *Logger) Info(logType string, format string, args ...any) {
|
||||
logString := fmt.Sprintf(format, args...)
|
||||
fmt.Printf("[%s] INFO: %s", logType, logString)
|
||||
fmt.Printf("[%s] [%s] INFO: %s\n", time.Now().Format(time.UnixDate), logType, logString)
|
||||
err := createLog(self.DB, LEVEL_INFO, logType, logString)
|
||||
if err != nil {
|
||||
fmt.Fprintf(os.Stderr, "WARN: Failed to push log to database: %v\n", err)
|
||||
|
@ -49,25 +51,20 @@ func (self *Logger) Info(logType string, format string, args ...any) {
|
|||
|
||||
func (self *Logger) Warn(logType string, format string, args ...any) {
|
||||
logString := fmt.Sprintf(format, args...)
|
||||
fmt.Fprintf(os.Stderr, "[%s] WARN: %s", logType, logString)
|
||||
fmt.Fprintf(os.Stderr, "[%s] [%s] WARN: %s\n", time.Now().Format(time.UnixDate), logType, logString)
|
||||
err := createLog(self.DB, LEVEL_WARN, logType, logString)
|
||||
if err != nil {
|
||||
fmt.Fprintf(os.Stderr, "WARN: Failed to push log to database: %v\n", err)
|
||||
}
|
||||
}
|
||||
|
||||
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, error) {
|
||||
log := Log{}
|
||||
err := self.DB.Get(&log, "SELECT * FROM auditlog WHERE id=$1", id)
|
||||
return &log, err
|
||||
}
|
||||
|
||||
func (self *Logger) Search(levelFilters []LogLevel, typeFilters []string, content string, offset int, limit int) ([]*Log, error) {
|
||||
func (self *Logger) Search(levelFilters []LogLevel, typeFilters []string, content string, limit int, offset int) ([]*Log, error) {
|
||||
logs := []*Log{}
|
||||
|
||||
params := []any{ limit, offset }
|
||||
|
@ -80,7 +77,11 @@ func (self *Logger) Search(levelFilters []LogLevel, typeFilters []string, conten
|
|||
}
|
||||
|
||||
if len(levelFilters) > 0 {
|
||||
conditions += " AND level IN ("
|
||||
if len(conditions) > 0 {
|
||||
conditions += " AND level IN ("
|
||||
} else {
|
||||
conditions += " WHERE level IN ("
|
||||
}
|
||||
for i := range levelFilters {
|
||||
conditions += fmt.Sprintf("$%d", len(params) + 1)
|
||||
if i < len(levelFilters) - 1 {
|
||||
|
@ -92,7 +93,11 @@ func (self *Logger) Search(levelFilters []LogLevel, typeFilters []string, conten
|
|||
}
|
||||
|
||||
if len(typeFilters) > 0 {
|
||||
conditions += " AND type IN ("
|
||||
if len(conditions) > 0 {
|
||||
conditions += " AND type IN ("
|
||||
} else {
|
||||
conditions += " WHERE type IN ("
|
||||
}
|
||||
for i := range typeFilters {
|
||||
conditions += fmt.Sprintf("$%d", len(params) + 1)
|
||||
if i < len(typeFilters) - 1 {
|
||||
|
@ -108,8 +113,16 @@ func (self *Logger) Search(levelFilters []LogLevel, typeFilters []string, conten
|
|||
conditions,
|
||||
)
|
||||
|
||||
// TODO: remove after testing
|
||||
fmt.Println(query)
|
||||
/*
|
||||
fmt.Printf("%s (", query)
|
||||
for i, param := range params {
|
||||
fmt.Print(param)
|
||||
if i < len(params) - 1 {
|
||||
fmt.Print(", ")
|
||||
}
|
||||
}
|
||||
fmt.Print(")\n")
|
||||
*/
|
||||
|
||||
err := self.DB.Select(&logs, query, params...)
|
||||
if err != nil {
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue