FILE / ScuroNeko/SNekLog

examples/main.go

Исходный файл и его история в репозитории.
FILE dd3c7286d27688e6b17037e94d522b5ca6cce968
Files
SNekLog/examples/main.go
T
ScuroNeko dd3c7286d2
Golang lint / lint (push) Successful in 45s
(new): JSON HTML escaping control
- add Formatter.JSONEscapeHTML and SetJSONEscapeHTML to let JSON writers preserve HTML-sensitive characters when needed while keeping escaping enabled by default.
- switch JSON output to json.Encoder, preserve existing Print/Println newline semantics, and cover the new escaping behavior in tests.
2026-04-28 14:36:03 +03:00

91 lines
2.5 KiB
Go

package main
import (
"bytes"
"git.scuroneko.dev/scuroneko/sneklog/v2"
)
func main() {
httpGet := sneklog.NewLogLevelWithColors(0, "get", sneklog.FgGreen, sneklog.BgNone)
httpPost := sneklog.NewLogLevelWithColors(0, "post", sneklog.FgBlue, sneklog.BgNone)
httpDelete := sneklog.NewLogLevel(0, "delete")
httpDelete.SetBackgroundRGB(128, 0, 0)
httpDelete.AddAttribute(sneklog.Italic).AddAttribute(sneklog.Bold)
logger := sneklog.NewLogger().
SetName("EXAMPLE").
SetLevel(sneklog.DEBUG).
SetJSONPretty(true).
AddReplacer("SOME_SECRET", "<Secret>")
sneklog.INFO.SetBgColor(sneklog.BgBlue).SetFgColor(sneklog.FgWhite)
textStdout := logger.CreateTextStdoutWriter()
jsonStdout := logger.CreateJsonStdoutWriter()
formatter := sneklog.NewFormatter().
SetFormat("[%t] [%L] [%N]: %m (%s)").
SetTimeStampFormat(sneklog.Kitchen).
SetTraceBackFormat("%s %f:%n %p")
jsonFormatter := sneklog.NewFormatter().
SetFormat("[%L] [%N] %m").
SetColorOutput(false).
SetJSONEscapeHTML(false).
SetTimeStampFormat(sneklog.Kitchen)
textStdout.SetFormatter(formatter)
jsonStdout.SetFormatter(jsonFormatter)
textFile, err := logger.CreateTextFileWriter("logs/text.log")
if err != nil {
_ = logger.Close()
panic(err)
}
jsonFile, err := logger.CreateJsonFileWriter("logs/json.log")
if err != nil {
_ = logger.Close()
panic(err)
}
var externalBuffer bytes.Buffer
externalText := logger.CreateTextWriter(&externalBuffer)
externalJSON := logger.CreateJsonWriter(&externalBuffer)
logger.AddWriters(
textStdout,
jsonStdout,
textFile,
jsonFile,
externalText,
externalJSON,
)
logger.Infoln("Тест <>&")
logger.Infoln("service started")
logger.Warnln("cache miss")
logger.Errorln("request failed")
logger.Debugln("debug details")
logger.Infoln("sensitive info, SOME_SECRET")
logger.Println(httpGet, "this can be logging of http get request/response...")
logger.Println(httpPost, "...and this can be logging of http post request/response...")
logger.Println(httpDelete, "...but this logging of http delete request/response with highly customizable level!")
if err := logger.Close(); err != nil {
panic(err)
}
s := sneklog.NewColorStringBuilder().
AddBackgroundRGB(sneklog.NewBgColorRGB(31, 41, 40)).
AddForegroundRGB(sneklog.NewFgColorRGB(220, 215, 186)).
AddAttribute(sneklog.Italic).AddAttribute(sneklog.Bold).
AddText("Some Very very very cool stuff, themed in Kanagawa colors!").String()
println(s)
//fmt.Println("external buffer contents:")
//fmt.Println(externalBuffer.String())
}