Move from dockron
This commit is contained in:
parent
7a147403ba
commit
ade93c1d23
1
.gitignore
vendored
1
.gitignore
vendored
@ -14,4 +14,3 @@
|
||||
|
||||
# Dependency directories (remove the comment below to include it)
|
||||
# vendor/
|
||||
|
||||
|
21
.pre-commit-config.yaml
Normal file
21
.pre-commit-config.yaml
Normal file
@ -0,0 +1,21 @@
|
||||
---
|
||||
repos:
|
||||
- repo: https://github.com/pre-commit/pre-commit-hooks
|
||||
rev: v2.4.0
|
||||
hooks:
|
||||
- id: check-added-large-files
|
||||
- id: trailing-whitespace
|
||||
- id: end-of-file-fixer
|
||||
- id: check-merge-conflict
|
||||
- repo: git://github.com/dnephin/pre-commit-golang
|
||||
rev: v0.3.5
|
||||
hooks:
|
||||
- id: go-fmt
|
||||
- id: go-imports
|
||||
# - id: gometalinter
|
||||
# - id: golangci-lint
|
||||
- repo: https://github.com/IamTheFij/docker-pre-commit
|
||||
rev: v2.0.0
|
||||
hooks:
|
||||
- id: docker-compose-check
|
||||
- id: hadolint-system
|
22
Makefile
Normal file
22
Makefile
Normal file
@ -0,0 +1,22 @@
|
||||
.PHONY: all clean
|
||||
all: test README.md
|
||||
|
||||
.PHONY: default
|
||||
default: test
|
||||
|
||||
.PHONY: test
|
||||
test: check
|
||||
|
||||
# Installs pre-commit hooks
|
||||
.PHONY: install-hooks
|
||||
install-hooks:
|
||||
pre-commit install --install-hooks
|
||||
|
||||
# Runs pre-commit checks on files
|
||||
.PHONY: check
|
||||
check:
|
||||
pre-commit run --all-files
|
||||
|
||||
|
||||
README.md: ./add-docs-to-readme.sh *.go
|
||||
./add-docs-to-readme.sh
|
53
README.md
53
README.md
@ -1,3 +1,54 @@
|
||||
# slog
|
||||
|
||||
Simple logger for Go with no dependencies
|
||||
A simple logger for Go with no dependencies
|
||||
|
||||
I know there are many go loggers out there that offer various logging features such as file rotation, granular verbosity settings, colored and JSON output, etc.
|
||||
|
||||
_Slog is not one of them._
|
||||
|
||||
Slog lets you hide or show debug logs as well as provides a simpler way to log messages with Warning and Error prefixes for consistency.
|
||||
|
||||
Also provided are a few simple methods for handling returned `error` variables, logging them out and optionally panicing or fatally exiting.
|
||||
|
||||
## Documentation
|
||||
package slog // import "git.iamthefij.com/iamthefij/slog"
|
||||
|
||||
Package slog is a super simple logger that allows a few convenience methods
|
||||
for handling debug vs warning/error logs. It also adds a few conveniences
|
||||
for handling errors.
|
||||
|
||||
VARIABLES
|
||||
|
||||
var (
|
||||
// DebugLevel indicates if we should log at the debug level
|
||||
DebugLevel = true
|
||||
)
|
||||
|
||||
FUNCTIONS
|
||||
|
||||
func Debug(format string, v ...interface{})
|
||||
Debug will log with a DEBUG prefix if DebugLevel is se
|
||||
|
||||
func Error(format string, v ...interface{})
|
||||
Error will log with a ERROR prefix
|
||||
|
||||
func FatalOnErr(err error, format string, v ...interface{})
|
||||
FatalOnErr if error provided, will log out details of an error and exi
|
||||
|
||||
func Info(format string, v ...interface{})
|
||||
Info formats logs with an INFO prefix
|
||||
|
||||
func Log(format string, v ...interface{})
|
||||
Log formats logs directly to the main logger
|
||||
|
||||
func PanicOnErr(err error, format string, v ...interface{})
|
||||
PanicOnErr if error provided, will log out details of an error and exi
|
||||
|
||||
func SetFlags(flag int)
|
||||
SetFlags allows changing the logger flags using flags found in `log`
|
||||
|
||||
func WarnOnErr(err error, format string, v ...interface{})
|
||||
WarnOnErr if error provided, will provide a warning if an error is provided
|
||||
|
||||
func Warning(format string, v ...interface{})
|
||||
Warning will log with a WARNING prefix
|
||||
|
8
add-docs-to-readme.sh
Executable file
8
add-docs-to-readme.sh
Executable file
@ -0,0 +1,8 @@
|
||||
#! /bin/bash
|
||||
set -e
|
||||
|
||||
slogdir=$(dirname "$0")
|
||||
readme="$slogdir/README.md"
|
||||
|
||||
awk '/## Documentation/ {print ; exit} {print}' "$readme" > "$readme.tmp" && go doc -all slog | sed "s/^/ /;s/[ \t]*$//" >> "$readme.tmp"
|
||||
mv "$readme.tmp" "$readme"
|
90
slog.go
Normal file
90
slog.go
Normal file
@ -0,0 +1,90 @@
|
||||
// Package slog is a super simple logger that allows a few convenience methods
|
||||
// for handling debug vs warning/error logs. It also adds a few conveniences for
|
||||
// handling errors.
|
||||
package slog
|
||||
|
||||
import (
|
||||
"log"
|
||||
"os"
|
||||
)
|
||||
|
||||
var (
|
||||
// DebugLevel indicates if we should log at the debug level
|
||||
DebugLevel = true
|
||||
|
||||
// Default set of flags to use
|
||||
defaultFlags = log.LstdFlags | log.Lmsgprefix
|
||||
|
||||
// Loggers for various levels. Prefixes are padded to align logged content
|
||||
loggerInfo = log.New(os.Stderr, "INFO ", defaultFlags)
|
||||
loggerWarning = log.New(os.Stderr, "WARNING ", defaultFlags)
|
||||
loggerError = log.New(os.Stderr, "ERROR ", defaultFlags)
|
||||
loggerDebug = log.New(os.Stderr, "DEBUG ", defaultFlags)
|
||||
|
||||
// Convenience for calling functions for all loggers in one method
|
||||
allLoggers = []*log.Logger{
|
||||
loggerInfo,
|
||||
loggerWarning,
|
||||
loggerError,
|
||||
loggerDebug,
|
||||
}
|
||||
)
|
||||
|
||||
// SetFlags allows changing the logger flags using flags found in `log`
|
||||
func SetFlags(flag int) {
|
||||
for _, logger := range allLoggers {
|
||||
logger.SetFlags(flag)
|
||||
}
|
||||
}
|
||||
|
||||
// Log formats logs directly to the main logger
|
||||
func Log(format string, v ...interface{}) {
|
||||
log.Printf(format, v...)
|
||||
}
|
||||
|
||||
// Info formats logs with an INFO prefix
|
||||
func Info(format string, v ...interface{}) {
|
||||
loggerInfo.Printf(format, v...)
|
||||
}
|
||||
|
||||
// Warning will log with a WARNING prefix
|
||||
func Warning(format string, v ...interface{}) {
|
||||
loggerWarning.Printf(format, v...)
|
||||
}
|
||||
|
||||
// Error will log with a ERROR prefix
|
||||
func Error(format string, v ...interface{}) {
|
||||
loggerError.Printf(format, v...)
|
||||
}
|
||||
|
||||
// Debug will log with a DEBUG prefix if DebugLevel is set
|
||||
func Debug(format string, v ...interface{}) {
|
||||
if !DebugLevel {
|
||||
return
|
||||
}
|
||||
loggerDebug.Printf(format, v...)
|
||||
}
|
||||
|
||||
// WarnOnErr if error provided, will provide a warning if an error is provided
|
||||
func WarnOnErr(err error, format string, v ...interface{}) {
|
||||
if err != nil {
|
||||
loggerWarning.Printf(format, v...)
|
||||
loggerError.Print(err)
|
||||
}
|
||||
}
|
||||
|
||||
// FatalOnErr if error provided, will log out details of an error and exit
|
||||
func FatalOnErr(err error, format string, v ...interface{}) {
|
||||
if err != nil {
|
||||
loggerError.Printf(format, v...)
|
||||
loggerError.Fatal(err)
|
||||
}
|
||||
}
|
||||
|
||||
// PanicOnErr if error provided, will log out details of an error and exit
|
||||
func PanicOnErr(err error, format string, v ...interface{}) {
|
||||
if err != nil {
|
||||
loggerError.Printf(format, v...)
|
||||
loggerError.Panic(err)
|
||||
}
|
||||
}
|
Loading…
Reference in New Issue
Block a user