5 Commits

Author SHA1 Message Date
9b90315f37 Delete outdated benchmark reports and results.
Removed old benchmark reports and detailed logs from the repository to clean up unnecessary files. These reports appear to be auto-generated and no longer relevant for ongoing development.
2025-09-15 05:00:19 +01:00
3c7686a219 add detailed usage example to README.adoc 2025-08-20 04:58:14 +01:00
575fd286e5 add usage example to README.adoc 2025-08-20 04:54:37 +01:00
eb5f6c9adb add README.adoc with library description 2025-08-20 04:53:08 +01:00
4652539e77 update module path to lol.mleku.dev 2025-08-20 04:52:11 +01:00
7 changed files with 46 additions and 34 deletions

28
README.adoc Normal file
View File

@@ -0,0 +1,28 @@
= lol
== location of log
This is a very simple, but practical library for logging in applications. Its
main feature is printing source code locations to make debugging easier.
to use:
[source,go]
----
package main
import (
"lol.mleku.dev"
)
func main() {
err := errorf.E("this is a pretend error")
if chk.E(err) {
log.E.F("you saw it print the error creating it, checking it, and now here is a log")
}
}
----
There are more variants, different error levels, a level setting that can be
changed while running. See the handy shortcut packages in chk, errorf and log
for more details.

View File

@@ -1,6 +0,0 @@
# lol
location of log
This is a very simple, but practical library for logging in applications. Its
main feature is printing source code locations to make debugging easier.

View File

@@ -2,7 +2,7 @@
package chk
import (
"github.com/mleku/lol"
"lol.mleku.dev"
)
var F, E, W, I, D, T lol.Chk

View File

@@ -2,7 +2,7 @@
package errorf
import (
"github.com/mleku/lol"
"lol.mleku.dev"
)
var F, E, W, I, D, T lol.Err

2
go.mod
View File

@@ -1,4 +1,4 @@
module github.com/mleku/lol
module lol.mleku.dev
go 1.25.0

38
log.go
View File

@@ -13,7 +13,6 @@ import (
"time"
"github.com/davecgh/go-spew/spew"
"github.com/fatih/color"
)
const (
@@ -89,12 +88,12 @@ var (
// LevelSpecs specifies the id, string name and color-printing function
LevelSpecs = []LevelSpec{
{Off, "", NoSprint},
{Fatal, "FTL", color.New(color.BgRed, color.FgHiWhite).Sprint},
{Error, "ERR", color.New(color.FgHiRed).Sprint},
{Warn, "WRN", color.New(color.FgHiYellow).Sprint},
{Info, "INF", color.New(color.FgHiGreen).Sprint},
{Debug, "DBG", color.New(color.FgHiBlue).Sprint},
{Trace, "TRC", color.New(color.FgHiMagenta).Sprint},
{Fatal, "☠️", fmt.Sprint},
{Error, "🚨", fmt.Sprint},
{Warn, "⚠️", fmt.Sprint},
{Info, "", fmt.Sprint},
{Debug, "🔎", fmt.Sprint},
{Trace, "👻", fmt.Sprint},
}
)
@@ -185,7 +184,7 @@ func JoinStrings(a ...any) (s string) {
return
}
var msgCol = color.New(color.FgBlue).Sprint
var msgCol = fmt.Sprint
// GetPrinter returns a full logger that writes to the provided io.Writer.
func GetPrinter(l int32, writer io.Writer, skip int) LevelPrinter {
@@ -196,7 +195,7 @@ func GetPrinter(l int32, writer io.Writer, skip int) LevelPrinter {
}
_, _ = fmt.Fprintf(
writer,
"%s%s %s %s\n",
"%s%s%s %s\n",
msgCol(TimeStamper()),
LevelSpecs[l].Colorizer(LevelSpecs[l].Name),
JoinStrings(a...),
@@ -209,7 +208,7 @@ func GetPrinter(l int32, writer io.Writer, skip int) LevelPrinter {
}
_, _ = fmt.Fprintf(
writer,
"%s%s %s %s\n",
"%s%s%s %s\n",
msgCol(TimeStamper()),
LevelSpecs[l].Colorizer(LevelSpecs[l].Name),
fmt.Sprintf(format, a...),
@@ -222,7 +221,7 @@ func GetPrinter(l int32, writer io.Writer, skip int) LevelPrinter {
}
_, _ = fmt.Fprintf(
writer,
"%s%s %s %s\n",
"%s%s%s %s\n",
msgCol(TimeStamper()),
LevelSpecs[l].Colorizer(LevelSpecs[l].Name),
spew.Sdump(a...),
@@ -235,7 +234,7 @@ func GetPrinter(l int32, writer io.Writer, skip int) LevelPrinter {
}
_, _ = fmt.Fprintf(
writer,
"%s%s %s %s\n",
"%s%s%s %s\n",
msgCol(TimeStamper()),
LevelSpecs[l].Colorizer(LevelSpecs[l].Name),
closure(),
@@ -249,7 +248,7 @@ func GetPrinter(l int32, writer io.Writer, skip int) LevelPrinter {
if e != nil {
_, _ = fmt.Fprintf(
writer,
"%s%s %s %s\n",
"%s%s%s %s\n",
msgCol(TimeStamper()),
LevelSpecs[l].Colorizer(LevelSpecs[l].Name),
e.Error(),
@@ -263,7 +262,7 @@ func GetPrinter(l int32, writer io.Writer, skip int) LevelPrinter {
if Level.Load() >= l {
_, _ = fmt.Fprintf(
writer,
"%s%s %s %s\n",
"%s%s%s %s\n",
msgCol(TimeStamper()),
LevelSpecs[l].Colorizer(LevelSpecs[l].Name),
fmt.Sprintf(format, a...),
@@ -325,16 +324,7 @@ func New(writer io.Writer, skip int) (l *Log, c *Check, errorf *Errorf) {
// TimeStamper generates the timestamp for logs.
func TimeStamper() (s string) {
ts := time.Now().Format("150405.000000")
ds := time.Now().Format("2006-01-02")
s += color.New(color.FgBlue).Sprint(ds[0:4])
s += color.New(color.FgHiBlue).Sprint(ds[5:7])
s += color.New(color.FgBlue).Sprint(ds[8:])
s += color.New(color.FgHiBlue).Sprint(ts[0:2])
s += color.New(color.FgBlue).Sprint(ts[2:4])
s += color.New(color.FgHiBlue).Sprint(ts[4:6])
s += color.New(color.FgBlue).Sprint(ts[7:])
s += " "
s = fmt.Sprint(time.Now().UnixMicro())
return
}

View File

@@ -2,7 +2,7 @@
package log
import (
"github.com/mleku/lol"
"lol.mleku.dev"
)
var F, E, W, I, D, T lol.LevelPrinter