(refactor): prepare breaking v2 API
- rename package to sneklog and move module to /v2 - replace text output flags with writer formatters - remove external color dependencies - update migration notes and coverage
This commit is contained in:
+13
-15
@@ -1,4 +1,4 @@
|
||||
# slog
|
||||
# SNekLog (ScuroNeko Logger)
|
||||
|
||||
Небольшой структурированный логгер для Go с текстовым и JSON-выводом, несколькими writer'ами и настраиваемыми traceback-метаданными.
|
||||
|
||||
@@ -17,7 +17,7 @@ English version: [README.md](README.md)
|
||||
## Установка
|
||||
|
||||
```bash
|
||||
go get git.scuroneko.dev/scuroneko/slog
|
||||
go get git.scuroneko.dev/scuroneko/slog/v2
|
||||
```
|
||||
|
||||
## Быстрый старт
|
||||
@@ -28,15 +28,13 @@ package main
|
||||
import (
|
||||
"log"
|
||||
|
||||
"git.scuroneko.dev/scuroneko/slog"
|
||||
"git.scuroneko.dev/scuroneko/slog/v2"
|
||||
)
|
||||
|
||||
func main() {
|
||||
logger := slog.CreateLogger().
|
||||
logger := sneklog.CreateLogger().
|
||||
Prefix("API").
|
||||
Level(slog.DEBUG).
|
||||
PrintTraceback(true).
|
||||
JsonPretty(true).
|
||||
Level(sneklog.DEBUG).
|
||||
AddReplacer("SOME_SECRET", "<redacted>")
|
||||
|
||||
text := logger.CreateTextStdoutWriter()
|
||||
@@ -64,12 +62,12 @@ func main() {
|
||||
`CreateLogger()` создает логгер со следующими настройками:
|
||||
|
||||
- `Prefix("LOG")`
|
||||
- `Level(slog.FATAL)`
|
||||
- `PrintTime(true)`
|
||||
- `PrintTraceback(false)`
|
||||
- `Level(sneklog.FATAL)`
|
||||
- `JsonPretty(false)`
|
||||
- текстовый formatter: `sneklog.DefaultTextFormatter`
|
||||
- JSON formatter: `sneklog.DefaultJsonFormatter`
|
||||
|
||||
Важно: в текущей модели уровней `Level(slog.FATAL)` пропускает `INFO`, `WARN`, `ERROR` и `FATAL`, но не `DEBUG`. Чтобы включить все сообщения, используйте `Level(slog.DEBUG)`.
|
||||
Важно: в текущей модели уровней `Level(sneklog.FATAL)` пропускает `INFO`, `WARN`, `ERROR` и `FATAL`, но не `DEBUG`. Чтобы включить все сообщения, используйте `Level(sneklog.DEBUG)`.
|
||||
|
||||
## Writer'ы и владение
|
||||
|
||||
@@ -92,10 +90,10 @@ func main() {
|
||||
Текстовый writer формирует записи вида:
|
||||
|
||||
```text
|
||||
[API] [INFO] [main.go:main:27] [17.03.26 14:05:09] service started
|
||||
2026-03-17T14:05:09+03:00 info API: service started
|
||||
```
|
||||
|
||||
Поле traceback появляется только если включен `PrintTraceback(true)`.
|
||||
Используйте `SetFormatter` у writer'а, чтобы настроить timestamp'ы, traceback-поля, цвета и шаблон сообщения.
|
||||
|
||||
JSON writer записывает объект со следующими полями:
|
||||
|
||||
@@ -125,8 +123,8 @@ JSON writer записывает объект со следующими поля
|
||||
как запись попадет в writer'ы. Правила замены применяются в порядке добавления.
|
||||
|
||||
```go
|
||||
logger := slog.CreateLogger().
|
||||
Level(slog.DEBUG).
|
||||
logger := sneklog.CreateLogger().
|
||||
Level(sneklog.DEBUG).
|
||||
AddReplacer("SOME_SECRET", "<redacted>").
|
||||
AddReplacer("user@example.com", "<email>")
|
||||
|
||||
|
||||
Reference in New Issue
Block a user