mirror of
https://github.com/hrfee/jfa-go.git
synced 2025-01-06 08:20:11 +00:00
Compare commits
2 Commits
f727e2c5b2
...
b29c24a405
Author | SHA1 | Date | |
---|---|---|---|
b29c24a405 | |||
fbe3553b25 |
1
log.go
1
log.go
@ -39,6 +39,7 @@ func logOutput() (closeFunc func()) {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
writer := io.MultiWriter(writers...)
|
writer := io.MultiWriter(writers...)
|
||||||
|
// FIXME: Potential cause if last log line doesn't get printed sometimes.
|
||||||
os.Stdout, os.Stderr = w, w
|
os.Stdout, os.Stderr = w, w
|
||||||
log.SetOutput(writer)
|
log.SetOutput(writer)
|
||||||
gin.DefaultWriter, gin.DefaultErrorWriter = writer, writer
|
gin.DefaultWriter, gin.DefaultErrorWriter = writer, writer
|
||||||
|
@ -11,16 +11,17 @@ import (
|
|||||||
c "github.com/fatih/color"
|
c "github.com/fatih/color"
|
||||||
)
|
)
|
||||||
|
|
||||||
type Logger interface {
|
// type Logger interface {
|
||||||
Printf(format string, v ...interface{})
|
// Printf(format string, v ...interface{})
|
||||||
Print(v ...interface{})
|
// Print(v ...interface{})
|
||||||
Println(v ...interface{})
|
// Println(v ...interface{})
|
||||||
Fatal(v ...interface{})
|
// Fatal(v ...interface{})
|
||||||
Fatalf(format string, v ...interface{})
|
// Fatalf(format string, v ...interface{})
|
||||||
SetFatalFunc(f func(err interface{}))
|
// SetFatalFunc(f func(err interface{}))
|
||||||
}
|
// }
|
||||||
|
|
||||||
type logger struct {
|
type Logger struct {
|
||||||
|
empty bool
|
||||||
logger *log.Logger
|
logger *log.Logger
|
||||||
shortfile bool
|
shortfile bool
|
||||||
printer *c.Color
|
printer *c.Color
|
||||||
@ -46,7 +47,8 @@ func Lshortfile() string {
|
|||||||
return file + ":" + lineString + ":"
|
return file + ":" + lineString + ":"
|
||||||
}
|
}
|
||||||
|
|
||||||
func NewLogger(out io.Writer, prefix string, flag int, color c.Attribute) (l logger) {
|
func NewLogger(out io.Writer, prefix string, flag int, color c.Attribute) (l *Logger) {
|
||||||
|
l = &Logger{}
|
||||||
// Use reimplemented Lshortfile since wrapping the log functions messes them up
|
// Use reimplemented Lshortfile since wrapping the log functions messes them up
|
||||||
if flag&log.Lshortfile != 0 {
|
if flag&log.Lshortfile != 0 {
|
||||||
flag -= log.Lshortfile
|
flag -= log.Lshortfile
|
||||||
@ -58,7 +60,12 @@ func NewLogger(out io.Writer, prefix string, flag int, color c.Attribute) (l log
|
|||||||
return l
|
return l
|
||||||
}
|
}
|
||||||
|
|
||||||
func (l logger) Printf(format string, v ...interface{}) {
|
func NewEmptyLogger() (l *Logger) { l.empty = true; return }
|
||||||
|
|
||||||
|
func (l *Logger) Printf(format string, v ...interface{}) {
|
||||||
|
if l.empty {
|
||||||
|
return
|
||||||
|
}
|
||||||
var out string
|
var out string
|
||||||
if l.shortfile {
|
if l.shortfile {
|
||||||
out = Lshortfile()
|
out = Lshortfile()
|
||||||
@ -67,7 +74,10 @@ func (l logger) Printf(format string, v ...interface{}) {
|
|||||||
l.logger.Print(out)
|
l.logger.Print(out)
|
||||||
}
|
}
|
||||||
|
|
||||||
func (l logger) Print(v ...interface{}) {
|
func (l *Logger) Print(v ...interface{}) {
|
||||||
|
if l.empty {
|
||||||
|
return
|
||||||
|
}
|
||||||
var out string
|
var out string
|
||||||
if l.shortfile {
|
if l.shortfile {
|
||||||
out = Lshortfile()
|
out = Lshortfile()
|
||||||
@ -76,7 +86,10 @@ func (l logger) Print(v ...interface{}) {
|
|||||||
l.logger.Print(out)
|
l.logger.Print(out)
|
||||||
}
|
}
|
||||||
|
|
||||||
func (l logger) Println(v ...interface{}) {
|
func (l *Logger) Println(v ...interface{}) {
|
||||||
|
if l.empty {
|
||||||
|
return
|
||||||
|
}
|
||||||
var out string
|
var out string
|
||||||
if l.shortfile {
|
if l.shortfile {
|
||||||
out = Lshortfile()
|
out = Lshortfile()
|
||||||
@ -85,7 +98,10 @@ func (l logger) Println(v ...interface{}) {
|
|||||||
l.logger.Print(out)
|
l.logger.Print(out)
|
||||||
}
|
}
|
||||||
|
|
||||||
func (l logger) Fatal(v ...interface{}) {
|
func (l *Logger) Fatal(v ...interface{}) {
|
||||||
|
if l.empty {
|
||||||
|
return
|
||||||
|
}
|
||||||
var out string
|
var out string
|
||||||
if l.shortfile {
|
if l.shortfile {
|
||||||
out = Lshortfile()
|
out = Lshortfile()
|
||||||
@ -94,29 +110,22 @@ func (l logger) Fatal(v ...interface{}) {
|
|||||||
l.logger.Fatal(out)
|
l.logger.Fatal(out)
|
||||||
}
|
}
|
||||||
|
|
||||||
func (l logger) Fatalf(format string, v ...interface{}) {
|
func (l *Logger) Fatalf(format string, v ...interface{}) {
|
||||||
|
if l.empty {
|
||||||
|
return
|
||||||
|
}
|
||||||
var out string
|
var out string
|
||||||
if l.shortfile {
|
if l.shortfile {
|
||||||
out = Lshortfile()
|
out = Lshortfile()
|
||||||
}
|
}
|
||||||
out += " " + l.printer.Sprintf(format, v...)
|
out += " " + l.printer.Sprintf(format, v...)
|
||||||
if l.fatalFunc != nil {
|
if l.fatalFunc != nil {
|
||||||
l.logger.Print(out)
|
|
||||||
l.fatalFunc(errors.New(out))
|
l.fatalFunc(errors.New(out))
|
||||||
} else {
|
} else {
|
||||||
l.logger.Fatal(out)
|
l.logger.Fatal(out)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
func (l logger) SetFatalFunc(f func(err interface{})) {
|
func (l *Logger) SetFatalFunc(f func(err interface{})) {
|
||||||
l.fatalFunc = f
|
l.fatalFunc = f
|
||||||
}
|
}
|
||||||
|
|
||||||
type EmptyLogger bool
|
|
||||||
|
|
||||||
func (l EmptyLogger) Printf(format string, v ...interface{}) {}
|
|
||||||
func (l EmptyLogger) Print(v ...interface{}) {}
|
|
||||||
func (l EmptyLogger) Println(v ...interface{}) {}
|
|
||||||
func (l EmptyLogger) Fatal(v ...interface{}) {}
|
|
||||||
func (l EmptyLogger) Fatalf(format string, v ...interface{}) {}
|
|
||||||
func (l EmptyLogger) SetFatalFunc(f func(err interface{})) {}
|
|
||||||
|
4
main.go
4
main.go
@ -98,7 +98,7 @@ type appContext struct {
|
|||||||
telegram *TelegramDaemon
|
telegram *TelegramDaemon
|
||||||
discord *DiscordDaemon
|
discord *DiscordDaemon
|
||||||
matrix *MatrixDaemon
|
matrix *MatrixDaemon
|
||||||
info, debug, err logger.Logger
|
info, debug, err *logger.Logger
|
||||||
host string
|
host string
|
||||||
port int
|
port int
|
||||||
version string
|
version string
|
||||||
@ -234,7 +234,7 @@ func start(asDaemon, firstCall bool) {
|
|||||||
if debugMode {
|
if debugMode {
|
||||||
app.debug = logger.NewLogger(os.Stdout, "[DEBUG] ", log.Ltime|log.Lshortfile, color.FgYellow)
|
app.debug = logger.NewLogger(os.Stdout, "[DEBUG] ", log.Ltime|log.Lshortfile, color.FgYellow)
|
||||||
} else {
|
} else {
|
||||||
app.debug = logger.EmptyLogger(false)
|
app.debug = logger.NewEmptyLogger()
|
||||||
}
|
}
|
||||||
if *PPROF {
|
if *PPROF {
|
||||||
app.info.Print(warning("\n\nWARNING: Don't use pprof in production.\n\n"))
|
app.info.Print(warning("\n\nWARNING: Don't use pprof in production.\n\n"))
|
||||||
|
4566
package-lock.json
generated
4566
package-lock.json
generated
File diff suppressed because it is too large
Load Diff
@ -29,5 +29,8 @@
|
|||||||
"remove-markdown": "^0.3.0",
|
"remove-markdown": "^0.3.0",
|
||||||
"typescript": "^4.0.3",
|
"typescript": "^4.0.3",
|
||||||
"uncss": "^0.17.3"
|
"uncss": "^0.17.3"
|
||||||
|
},
|
||||||
|
"devDependencies": {
|
||||||
|
"live-server": "^1.2.1"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user