Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

support caller manually #1175

Open
wants to merge 861 commits into
base: master
Choose a base branch
from
Open
Changes from 2 commits
Commits
Show all changes
861 commits
Select commit Hold shift + click to select a range
7b450cb
Merge pull request #822 from sirupsen/konsorten-win10-color-support
dgsb Sep 16, 2018
c027b93
Fix AppEngine builds
mdittmer Sep 17, 2018
d1d997e
Fix copypasta
mdittmer Sep 17, 2018
38b800e
Add AppEngine test configurations to travis to a void regression
mdittmer Sep 17, 2018
cbe4471
DisableColors in two tests to fix AppEngine configuration
mdittmer Sep 18, 2018
e248a66
Merge pull request #823 from mdittmer/fix-appengine
dgsb Sep 18, 2018
7b4c7a2
Add missing module dependency for windows build
dgsb Sep 19, 2018
a015100
Merge pull request #825 from dgsb/windows_build
dgsb Sep 19, 2018
9ac3a59
Add custom sorting function in text formatter
dgsb Sep 25, 2018
e838d82
Merge pull request #830 from sirupsen/custom_sorting_func
dgsb Sep 25, 2018
39b4df8
Update changelog for v1.1.0 release
dgsb Sep 25, 2018
c4d55a2
Skip func type value in fields.
dgsb Sep 30, 2018
150a7fe
Merge pull request #832 from sirupsen/skip_func_value
dgsb Sep 30, 2018
6981fe4
Add option to panic in `test.NewNullLogger` to allow testing of
caalberts Oct 6, 2018
e5e50fc
Rationalize os specific build constraints
dgsb Oct 6, 2018
1a33835
Update changelog for v1.1.1 release
dgsb Oct 8, 2018
587a6d6
Add a method Exit on Logger that calls `os.Exit` or alternate exit fu…
caalberts Oct 10, 2018
2a01439
Remove unnecessary wrapper function on `os.Exit`
caalberts Oct 10, 2018
bf2a167
Fix typo in comment
caalberts Oct 10, 2018
1d1651e
Merge pull request #837 from caalberts/test-fatal
dgsb Oct 10, 2018
da80f56
Attempt to fix build break on aix
dgsb Oct 12, 2018
1dcfd11
Add an example for tracing global variable with hook
dgsb Oct 15, 2018
b5f5425
disable colors on hook example
dgsb Oct 15, 2018
eb0072e
Merge pull request #842 from dgsb/master
dgsb Oct 16, 2018
04bda4e
Added TRACE level logging.
Oct 20, 2017
d814433
Add Trace level logging
gonix Oct 2, 2017
1d0fccc
Added trace log level.
Aug 28, 2018
3fd31d3
Addresses @stevvooe's backward compatibility concerns.
Oct 18, 2018
2df5f1a
PR#844: Added Trace to TestLogLevelEnabled() (requested by @dgsb)
Oct 19, 2018
deb7a53
Merge pull request #844 from loren-osborn/pull/652_AddTraceLevelLogging
dgsb Oct 20, 2018
bce06eb
Fix the version of windows coloring library dependency
dgsb Oct 21, 2018
ea49115
Merge pull request #846 from sirupsen/gomod_konsorten_version
dgsb Oct 21, 2018
76088bf
Make logrus.Level implement encoding.TextUnmarshaler
yanana Oct 19, 2018
0e679a6
Add GELF to third party formatters
FabienM Oct 24, 2018
8ec35fb
Merge branch 'master' into caller_feature
dgsb Oct 23, 2018
b7189c1
add a SetReportCaller on Logger object
dgsb Oct 27, 2018
54abc2c
Use a sync.Once to init the reportCaller data
dgsb Oct 27, 2018
cf25251
store a runtime.Frame in Entry instead of the caller function name
dgsb Oct 28, 2018
fc3c0b1
move test functions and test utils functions in their own package
dgsb Oct 28, 2018
f7239ff
add file and line number in output when report caller is enabled
dgsb Oct 28, 2018
a4e4cd7
make file name comparison os independant
dgsb Oct 28, 2018
7f83b92
Merge pull request #850 from sirupsen/caller_feature
dgsb Oct 28, 2018
54924e6
Merge pull request #845 from yanana/make-level-implement-text-unmarsh…
dgsb Oct 29, 2018
f8ba03f
fix panic in text formatter
dgsb Oct 31, 2018
f9c3ed7
Merge pull request #854 from sirupsen/fix_panic_text_formatter
dgsb Oct 31, 2018
249db8e
v1.2.0 changelog
dgsb Nov 1, 2018
b374ef6
Merge pull request #849 from FabienM/add-gelf-formatter
dgsb Nov 1, 2018
f6746f6
Merge remote-tracking branch 'upstream/master'
dgsb Nov 3, 2018
a92e13e
fix race condition caused by writing to entry.Data, using the same te…
h12w Nov 5, 2018
30bb27d
fix missing parameter
h12w Nov 6, 2018
39b9ac8
fix hook example
xrstf Nov 9, 2018
a556607
Merge pull request #841 from sirupsen/fix_aix_build
dgsb Nov 16, 2018
cd81e50
Merge pull request #860 from xrstf/master
dgsb Nov 16, 2018
a21c34f
Disable colored output on windows entirely
ceriath Nov 16, 2018
be34e5a
ignore expected color on windows
ceriath Nov 16, 2018
1beb3ed
Merge pull request #857 from h12w/master
dgsb Nov 22, 2018
7516337
Travis: fix checkout dir to help contributors run Travis on their fork
dolmen Nov 25, 2018
8457e05
Skip func pointer type value in fields
smacker Dec 5, 2018
ccd5428
Merge pull request #868 from dolmen/fix-travis-import-path
dgsb Dec 7, 2018
f8013bd
Merge pull request #870 from smacker/skip_func_pointer_type_value_in_…
dgsb Dec 9, 2018
00f1514
respect ForceColor and environment variables over OS check
ceriath Dec 9, 2018
a4d0171
Merge pull request #864 from ceriath/patch-1
dgsb Dec 10, 2018
ed7ca1f
do not clear error formatting informative field
dgsb Dec 14, 2018
668da23
Merge pull request #874 from sirupsen/fieldErrorBugFix
dgsb Dec 15, 2018
094f831
Add Generic Log functions with level via argument
Nov 15, 2018
8e5a222
Implement TextUnmarshaller interface for Level type
dgsb Dec 26, 2018
2f8d166
Merge pull request #878 from sirupsen/json_level_marshalling
dgsb Dec 26, 2018
50f3b67
Remove sensitivity to file line changes
Jan 2, 2019
99f47a0
Test Log
Jan 2, 2019
a881781
Merge pull request #863 from lugray/generic_log
richpoirier Jan 2, 2019
cef4387
Update Changelog for 1.3.0
richpoirier Jan 5, 2019
6df18b1
Remove unused variables in TextFormatter
saromanov Jan 11, 2019
b622c3a
Add an example hook which adds default fields
dgsb Jan 17, 2019
87c44ef
Merge pull request #889 from sirupsen/default_field_hook
dgsb Jan 17, 2019
1beb6e8
Add a unit test to ensure hook are called in their registration order
dgsb Jan 17, 2019
55d982c
Merge pull request #890 from sirupsen/hook_fire_order_test
dgsb Jan 17, 2019
89f781c
logger: fix wrong callback method
jiangxin Jan 22, 2019
7a8139d
Merge pull request #893 from jiangxin/jx/fix-warningln
richpoirier Jan 22, 2019
767ea6e
Add nested-logrus-formatter to README.md
antonfisher Jan 26, 2019
f5d9197
Add a DeferExitHandler function
Jan 29, 2019
a41784b
Fix error formatting based on best practices from Code Review Comments
CodeLingoBot Feb 5, 2019
2eb0003
prevent string formatting in Entry.Logf when log level is not enabled
gavincabbage Feb 6, 2019
85c2230
Merge pull request #903 from gavincabbage/entry-logf-level
dgsb Feb 10, 2019
f592aff
Merge pull request #897 from antonfisher/patch-1
dgsb Feb 10, 2019
06ce2d9
Fix infinite recursion on unknown Level.String()
noushavandijk Feb 20, 2019
8ce13d2
Add a CallerPrettyfier callback to the json formatter
dgsb Feb 27, 2019
6ac99bf
Merge pull request #909 from sirupsen/caller_prettyfier
dgsb Feb 27, 2019
9611364
Add a CallerPrettyfier callback to the text formatter
dgsb Feb 27, 2019
d2e06ea
Merge pull request #911 from sirupsen/caller_prettyfier_text_formatter
dgsb Feb 27, 2019
9571061
Remove debug trace
dgsb Mar 3, 2019
f47d63d
Add and example for CallerPrettyfier
dgsb Mar 3, 2019
bba49a3
Merge pull request #913 from sirupsen/example_caller_prettyfier
dgsb Mar 3, 2019
fcbfb26
fix ReportCaller race condition
georlav Mar 4, 2019
6983a03
fix sync.Once usage instead of adding a mutex lock
dgsb Mar 6, 2019
4a52ef6
Merge pull request #916 from sirupsen/fix_race_getcaller
dgsb Mar 6, 2019
b06e15d
Merge pull request #901 from CodeLingoBot/rewrite
lavoiesl Mar 11, 2019
e33f61a
Add WithContext
tgwizard Mar 11, 2019
ab7b541
Merge pull request #919 from tgwizard/entry-context
dgsb Mar 11, 2019
beac72f
Add CHANGELOG for v1.4.0
tgwizard Mar 11, 2019
2982bb9
Merge pull request #920 from sirupsen/changelog-v140
tgwizard Mar 11, 2019
9894569
Rewrite if-else-if-else to switch statements
sosiska Mar 13, 2019
d744993
Add hook to send logs to custom writer #678
bunyk Mar 15, 2019
d0ea271
Fix some test conditions
bunyk Mar 15, 2019
8a6b242
Add Bytes() method to Entry, and use it to avoid double type cast
bunyk Mar 18, 2019
7364c36
Add Go 1.12 to Travis CI build matrix
ceh Mar 24, 2019
e578647
Merge pull request #927 from ceh-forks/ci-go-1-12
dgsb Mar 27, 2019
dc7874a
Got rid of IsTerminal call to reduce external dependencies
tandr Mar 26, 2019
fa280de
Removed golang.org/x/crypto refs
tandr Mar 26, 2019
3bcdf8d
Moved moved unix-related parts into terminal
tandr Mar 26, 2019
3ffa802
Updated travis.yml
tandr Mar 27, 2019
b959081
Merge pull request #932 from tandr/drop-crypto-2
dgsb Mar 28, 2019
1d44a57
Move terminal package
Mar 28, 2019
c9b1473
Merge pull request #935 from pacmessica/move-terminal-pkg
lavoiesl Mar 28, 2019
f1805d0
Test more platforms
tandr Mar 28, 2019
224112b
return new entry for Entry.WithContext
hrxu01 Mar 29, 2019
42ab765
Merge pull request #941 from hrxu01/return_new_entry_for_Entry.WithCo…
tgwizard Mar 31, 2019
c01b1ae
Move files to main directory
tandr Apr 1, 2019
003af98
Make isTerminal un-exported
tandr Apr 1, 2019
d7e4ba4
remove field if val is empty string for func and file field in text f…
hrxu01 Apr 2, 2019
2a63c90
Merge pull request #943 from tandr/unexport-isterminal
dgsb Apr 2, 2019
77d0af9
Merge pull request #944 from hrxu01/remove_field_if_val_is_empty_for_…
dgsb Apr 2, 2019
e28bd9d
Merge pull request #937 from tandr/test-travis-3-plat
dgsb Apr 2, 2019
6e3c466
Release 1.4.1
dgsb Apr 2, 2019
2f33de8
Fix solaris build
dgsb Apr 3, 2019
34b3e79
Merge pull request #946 from sirupsen/solaris_build
dgsb Apr 3, 2019
0388f91
Update x/sys/unix to fix AIX support
Apr 23, 2019
94e8b25
remove go 1.10 from ci build matrix
dgsb May 10, 2019
2447eff
Merge pull request #961 from sirupsen/ci_build_matrix
dgsb May 10, 2019
96ec5a8
Update README.md
Clivern May 10, 2019
5da6a45
Add a checkTerminal for nacl to support running on play.golang.org
nlepage May 14, 2019
7767e3d
add full cross compilation in travis (#963)
dgsb May 18, 2019
b29bb2c
Merge pull request #966 from nlepage/feature/nacl
dgsb May 18, 2019
0a688f9
fix build break for plan9
dgsb May 18, 2019
e65823d
Merge pull request #969 from sirupsen/plan9_build
dgsb May 18, 2019
afcf02a
Release 1.4.2
dgsb May 18, 2019
0e2f765
Merge pull request #962 from Clivern/patch-1
dgsb May 18, 2019
e11b4bc
tracking commit
Jun 5, 2019
dfe5f93
tracking commit
Jun 5, 2019
c7c0b0e
add implementation and tests
Jun 5, 2019
3f8c357
update comments
Jun 5, 2019
1f57e96
update the readme
Jun 5, 2019
837edcd
add a space back
Jun 5, 2019
c0f949b
wording shift
Jun 5, 2019
6150605
bump ci
Jun 5, 2019
7dfe195
dynamically space the level text
coilysiren Jun 25, 2019
48c7b5e
init the loggers in tests
coilysiren Jun 25, 2019
b0c06e2
avoid escapes! h/t @therealplato
coilysiren Jun 27, 2019
7a2b469
len => RuneCount
coilysiren Jun 27, 2019
b82478b
its => it's
coilysiren Jun 28, 2019
a244a41
Merge pull request #977 from lynncyrin/pad-option
dgsb Jul 1, 2019
a5f81be
Fixed ineffectual assignment in test
muesli Jul 20, 2019
de4fc03
Avoid unnecessary conversion
muesli Jul 20, 2019
eee1138
readme: we have great maintainers now
sirupsen Aug 7, 2019
5af36b9
Merge remote-tracking branch 'upstream/master'
bunyk Sep 3, 2019
5a95a72
return early
Sep 5, 2019
be5deb7
some minimal documentation for Logger.Writer{,Level}
Sep 6, 2019
552178e
Add terminal_check_js.go file, for compatibility with GopherJS
flimzy Sep 19, 2019
12b5167
ReadMe.md file adds The Third Formatter link
Sep 29, 2019
e6a32cf
Fixed some typos in README.md
flowonyx Oct 4, 2019
855d0ce
add Go 1.13 in travis
psampaz Oct 11, 2019
2ff1098
Merge pull request #1037 from psampaz/travis_go_113
Oct 12, 2019
9d854a7
Merge pull request #1034 from flowonyx/patch-1
Oct 12, 2019
a53f717
Merge pull request #1032 from zput/ReadMeAddThirdFormatter
Oct 12, 2019
a73c3e9
Merge pull request #1017 from freeformz/ffz/docWriter
Oct 12, 2019
b8b0350
Merge pull request #990 from muesli/assign-fixes
Oct 12, 2019
8598f72
Merge pull request #1024 from flimzy/gopherjs
Oct 12, 2019
cea2e59
Merge pull request #991 from muesli/conversion-fixes
Oct 12, 2019
8e53473
Disable modules, run on osx
Oct 13, 2019
243a30e
go mod verify; go mod tidy
Oct 13, 2019
8450e41
Enable all of these to see what fails
Oct 13, 2019
230ea16
get some other deps
Oct 13, 2019
b551369
pull all the install into a single location
Oct 13, 2019
f280911
This should make gox a little nicer
Oct 14, 2019
c7bb2cb
Exclude go1.13.x from modules off, only build all on go1.13 modules on
Oct 14, 2019
213f203
Associate this example with what it's an example for
Oct 14, 2019
ad7a716
test the error to ensure there isn't an unexpected error in the test
Oct 14, 2019
dcec513
deadcode
Oct 14, 2019
8837a35
Merge pull request #1016 from freeformz/ffz/returnEarly
Oct 14, 2019
b870132
fix broken test
freeformz Oct 14, 2019
b8016f8
Force Quote
freeformz Oct 15, 2019
e0509fc
Merge pull request #1042 from sirupsen/ffz/ForceQuote
Oct 23, 2019
634f8fc
Merge pull request #1040 from sirupsen/ffz/Travis
Oct 23, 2019
2b88d5b
fix race conditions on entry
lwsanty Oct 23, 2019
5d9c54c
run golangci-lint on travis
Oct 25, 2019
0908a27
remove go1.11.x from travis build matrix
Oct 25, 2019
d4a89bd
add x rights on travis/lint.sh
Oct 25, 2019
fc0de00
Merge pull request #1053 from sirupsen/travis_rm_go111
dgsb Oct 25, 2019
8a7edf6
Merge pull request #1052 from sirupsen/activate_linter
dgsb Oct 25, 2019
6568f70
remove obsolete documentation
Oct 26, 2019
f87146d
Merge pull request #1054 from sirupsen/del_old_doc
dgsb Oct 26, 2019
e695648
improve Logger.WithField documentation
Oct 28, 2019
8b47487
Fix entity data bleed when using WithContext and WithTime
taywrobel Nov 28, 2019
5b1edf7
Make Entry WithContext and WithTime copy tests more clear
taywrobel Dec 3, 2019
3e78f98
Add support for freebsd/arm64
dmgk Dec 9, 2019
f698bb4
Fix typo
hlcfan Dec 18, 2019
c6e99be
add caption-json-formatter
nolleh Jan 20, 2020
7c43d5b
Remove annoying punctuation in Readme for better screen reader access…
mikolysz Jan 28, 2020
c9cb794
Merge pull request #1094 from devil418/fix-readme
sirupsen Feb 4, 2020
5ac8007
readme: maintenance-mode
sirupsen Feb 25, 2020
9779d30
Merge pull request #1082 from hlcfan/patch-1
Feb 25, 2020
aa65248
Merge pull request #1072 from taywrobel/bugfix/dataBleedAcrossEntities
markphelps Feb 25, 2020
0d4dc2f
Create stale.yml
markphelps Feb 26, 2020
e685ebc
Update stale.yml
markphelps Feb 26, 2020
ad7375b
Merge pull request #924 from bunyk/master
lavoiesl Feb 26, 2020
f5c36a2
Only mark issues as stale for now until we go through backlog of PRs
markphelps Feb 26, 2020
d28efc3
Merge pull request #633 from bogem/patch-1
markphelps Feb 26, 2020
5af9ae9
Merge pull request #1047 from lwsanty/fix-race-conditions-on-entry
markphelps Feb 26, 2020
284cce4
Get right logrus package name
hlcfan Feb 27, 2020
6a48e94
run CI for go 1.13 and 1.14
Mar 3, 2020
5cc1602
Merge pull request #1091 from nolleh/master
markphelps Mar 4, 2020
e62ca4a
Merge pull request #1060 from sirupsen/improve_withfield_doc
markphelps Mar 4, 2020
b924f6f
Merge pull request #921 from sosiska/patch-1
markphelps Mar 4, 2020
6f5e581
Merge pull request #1102 from hlcfan/get-right-logrus-pkg-name
dgsb Mar 6, 2020
cce2101
Fix wrong caller
cirelli94 Mar 9, 2020
6b08d78
Removed useless files
cirelli94 Mar 9, 2020
a700adb
Title updates
Dattax Mar 12, 2020
b06b205
resolved conflicts
davidraleigh Mar 13, 2020
013c865
create test to prove issue sirupsen/logrus#954
admacleod Mar 19, 2020
9b298a8
fix race condition in entry
admacleod Mar 19, 2020
5cf0721
fix deadlock in previous entry race condition fix
admacleod Mar 19, 2020
c419666
remove errant whitespace
admacleod Mar 19, 2020
f4b38d3
Merge pull request #1116 from admacleod/master
markphelps Mar 22, 2020
4e44d32
Merge pull request #1113 from davidraleigh/html-escape
markphelps Mar 22, 2020
1962519
Merge pull request #1110 from Dattax/patch-1
markphelps Mar 22, 2020
1bd0ea1
Merge pull request #1103 from sirupsen/fix-go114
markphelps Mar 22, 2020
c60851f
Merge pull request #1108 from cirelli94/fix-wrong-caller
markphelps Mar 22, 2020
41bb196
Add loggers that take functions as input
Azer0s Apr 10, 2020
14b02ee
Revert #1047
markphelps Apr 16, 2020
5748610
Merge pull request #1131 from sirupsen/revert-1047
markphelps Apr 16, 2020
eba264f
Adds flag to disable quotes in TextFormatter
Apr 23, 2020
5cb9357
Adds additional test cases for DisableQuote
Apr 23, 2020
867f3eb
Change CRLF line endings to LF
ialidzhikov Apr 28, 2020
dd3b7f5
update github.com/konsorten/go-windows-terminal-sequences dependency …
Apr 29, 2020
27cc879
Merge pull request #1137 from sirupsen/fix_crash_windows
dgsb Apr 29, 2020
709b88c
Merge pull request #1136 from ialidzhikov/nit/line-endings
dgsb Apr 29, 2020
f30c6a4
Merge branch 'disable-quotes' of https://github.com/thlacroix/logrus …
Apr 29, 2020
27a0399
complete documetation on TextFormatter.DisableQuote
Apr 29, 2020
cd742db
Merge remote-tracking branch 'origin/master' into thlacroix-disable-q…
Apr 29, 2020
893c724
update CHANGELOG.md with 1.5.0 and 1.6.0 version contents
May 2, 2020
fc5e1a1
Simplify checkIfTerminal for Windows
tklauser Jan 12, 2020
7a26d2f
Merge pull request #1088 from tklauser/simplify-windows
dgsb May 19, 2020
90576db
Merge pull request #1077 from dmgk/master
dgsb May 19, 2020
88b3fbe
Merge branch 'feature/function-log' of https://github.com/Azer0s/logr…
dgsb May 19, 2020
5ad417d
Improve tests for logger.*Fn functions
dgsb May 19, 2020
db43fd6
Merge pull request #1142 from sirupsen/function-log
dgsb May 19, 2020
393fa3b
Update doc for new logger
sohel-sheikh May 26, 2020
9aeacf4
Merge pull request #1144 from sohel-sheikh/patch-1
dgsb May 26, 2020
d2fc9bd
Add an API to plug a custom buffer free item mangement system
May 28, 2020
7b88485
Merge pull request #1145 from sirupsen/custom_buffer_pool
dgsb May 28, 2020
495016b
support caller manually
Sep 16, 2020
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 2 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
@@ -1,2 +1,4 @@
logrus
vendor

.idea/
26 changes: 26 additions & 0 deletions example_function_test.go
Original file line number Diff line number Diff line change
@@ -0,0 +1,26 @@
package logrus_test

import (
"fmt"
log "github.com/sirupsen/logrus"
"testing"
)

func TestLogger_LogFn(t *testing.T) {
log.SetFormatter(&log.JSONFormatter{})
log.SetLevel(log.WarnLevel)

log.InfoFn(func() []interface{} {
fmt.Println("This is never run")
return []interface{} {
"Hello",
}
})

log.ErrorFn(func() []interface{} {
fmt.Println("This runs")
return []interface{} {
"Oopsi",
}
})
}
45 changes: 45 additions & 0 deletions exported.go
Original file line number Diff line number Diff line change
@@ -134,6 +134,51 @@ func Fatal(args ...interface{}) {
std.Fatal(args...)
}

// TraceFn logs a message from a func at level Trace on the standard logger.
func TraceFn(fn LogFunction) {
std.TraceFn(fn)
}

// DebugFn logs a message from a func at level Debug on the standard logger.
func DebugFn(fn LogFunction) {
std.DebugFn(fn)
}

// PrintFn logs a message from a func at level Info on the standard logger.
func PrintFn(fn LogFunction) {
std.PrintFn(fn)
}

// InfoFn logs a message from a func at level Info on the standard logger.
func InfoFn(fn LogFunction) {
std.InfoFn(fn)
}

// WarnFn logs a message from a func at level Warn on the standard logger.
func WarnFn(fn LogFunction) {
std.WarnFn(fn)
}

// WarningFn logs a message from a func at level Warn on the standard logger.
func WarningFn(fn LogFunction) {
std.WarningFn(fn)
}

// ErrorFn logs a message from a func at level Error on the standard logger.
func ErrorFn(fn LogFunction) {
std.ErrorFn(fn)
}

// PanicFn logs a message from a func at level Panic on the standard logger.
func PanicFn(fn LogFunction) {
std.PanicFn(fn)
}

// FatalFn logs a message from a func at level Fatal on the standard logger then the process will exit with status set to 1.
func FatalFn(fn LogFunction) {
std.FatalFn(fn)
}

// Tracef logs a message at level Trace on the standard logger.
func Tracef(format string, args ...interface{}) {
std.Tracef(format, args...)
52 changes: 52 additions & 0 deletions logger.go
Original file line number Diff line number Diff line change
@@ -9,6 +9,11 @@ import (
"time"
)

// LogFunction For big messages, it can be more efficient to pass a function
// and only call it if the log level is actually enables rather than
// generating the log message and then checking if the level is enabled
type LogFunction func()[]interface{}

type Logger struct {
// The logs are `io.Copy`'d to this in a mutex. It's common to set this to a
// file, or leave it default which is `os.Stderr`. You can also set this to
@@ -195,6 +200,14 @@ func (logger *Logger) Log(level Level, args ...interface{}) {
}
}

func (logger *Logger) LogFn(level Level, fn LogFunction) {
if logger.IsLevelEnabled(level) {
entry := logger.newEntry()
entry.Log(level, fn()...)
logger.releaseEntry(entry)
}
}

func (logger *Logger) Trace(args ...interface{}) {
logger.Log(TraceLevel, args...)
}
@@ -234,6 +247,45 @@ func (logger *Logger) Panic(args ...interface{}) {
logger.Log(PanicLevel, args...)
}

func (logger *Logger) TraceFn(fn LogFunction) {
logger.LogFn(TraceLevel, fn)
}

func (logger *Logger) DebugFn(fn LogFunction) {
logger.LogFn(DebugLevel, fn)
}

func (logger *Logger) InfoFn(fn LogFunction) {
logger.LogFn(InfoLevel, fn)
}

func (logger *Logger) PrintFn(fn LogFunction) {
entry := logger.newEntry()
entry.Print(fn()...)
logger.releaseEntry(entry)
}

func (logger *Logger) WarnFn(fn LogFunction) {
logger.LogFn(WarnLevel, fn)
}

func (logger *Logger) WarningFn(fn LogFunction) {
logger.WarnFn(fn)
}

func (logger *Logger) ErrorFn(fn LogFunction) {
logger.LogFn(ErrorLevel, fn)
}

func (logger *Logger) FatalFn(fn LogFunction) {
logger.LogFn(FatalLevel, fn)
logger.Exit(1)
}

func (logger *Logger) PanicFn(fn LogFunction) {
logger.LogFn(PanicLevel, fn)
}

func (logger *Logger) Logln(level Level, args ...interface{}) {
if logger.IsLevelEnabled(level) {
entry := logger.newEntry()