Eugene
14dcf38e7d
Make AppendKey in json inlinable ( #226 )
...
This change increase performance by inlining this frequently called function
Benchmark:
| name | old time/op | new time/op | delta | params |
|---|---|---|---|---|
| LogEmpty-8 | 14.1ns ±10% | 15.6ns ±13% | +10.43% | (p=0.003 n=10+10) |
| Disabled-8 | 1.27ns ± 0% | 1.35ns ± 1% | +6.54% | (p=0.000 n=9+10) |
| Info-8 | 39.8ns ± 5% | 37.9ns ± 2% | -4.55% | (p=0.000 n=10+10) |
| ContextFields-8 | 42.2ns ± 4% | 39.7ns ± 3% | -6.04% | (p=0.000 n=10+10) |
| ContextAppend-8 | 15.3ns ± 0% | 14.5ns ± 0% | -5.23% | (p=0.000 n=9+10) |
| LogFields-8 | 179ns ± 0% | 176ns ± 1% | -1.23% | (p=0.000 n=10+10) |
| LogArrayObject-8 | 526ns ± 1% | 491ns ± 1% | -6.65% | (p=0.000 n=9+10) |
| LogFieldType/Bools-8 | 34.5ns ± 2% | 33.3ns ± 4% | -3.63% | (p=0.000 n=9+10) |
| LogFieldType/Int-8 | 29.7ns ± 4% | 28.3ns ± 6% | -4.71% | (p=0.003 n=10+10) |
| LogFieldType/Str-8 | 29.6ns ± 3% | 27.1ns ± 2% | -8.19% | (p=0.000 n=10+10) |
| LogFieldType/Time-8 | 119ns ± 0% | 118ns ± 0% | -0.84% | (p=0.000 n=9+9) |
| LogFieldType/Interfaces-8 | 504ns ± 1% | 516ns ± 1% | +2.46% | (p=0.000 n=10+10) |
| LogFieldType/Object-8 | 73.7ns ± 2% | 71.6ns ± 1% | -2.94% | (p=0.000 n=10+10) |
| LogFieldType/Bool-8 | 28.9ns ± 6% | 25.9ns ± 3% | -10.35% | (p=0.000 n=9+10) |
| LogFieldType/Strs-8 | 53.7ns ± 2% | 51.6ns ± 1% | -3.95% | (p=0.000 n=9+10) |
| LogFieldType/Err-8 | 39.2ns ± 2% | 38.1ns ± 4% | -2.66% | (p=0.006 n=10+10) |
| LogFieldType/Interface-8 | 147ns ± 1% | 145ns ± 1% | -1.22% | (p=0.001 n=10+10) |
| LogFieldType/Interface(Object)-8 | 78.8ns ± 1% | 76.9ns ± 1% | -2.43% | (p=0.000 n=10+10) |
| LogFieldType/Interface(Objects)-8 | 516ns ± 0% | 507ns ± 1% | -1.66% | (p=0.000 n=8+10) |
| LogFieldType/Ints-8 | 52.4ns ± 1% | 48.1ns ± 1% | -8.28% | (p=0.000 n=10+10) |
| LogFieldType/Float-8 | 39.8ns ± 1% | 38.4ns ± 2% | -3.33% | (p=0.000 n=10+9) |
| LogFieldType/Times-8 | 887ns ± 0% | 887ns ± 0% | ~ | (p=0.164 n=8+10) |
| LogFieldType/Dur-8 | 41.1ns ± 2% | 40.2ns ± 6% | -2.10% | (p=0.014 n=10+10) |
| LogFieldType/Durs-8 | 266ns ± 0% | 262ns ± 0% | -1.35% | (p=0.000 n=7+10) |
| LogFieldType/Floats-8 | 166ns ± 0% | 165ns ± 1% | ~ | (p=0.238 n=10+10) |
| LogFieldType/Errs-8 | 126ns ± 1% | 120ns ± 2% | -4.61% | (p=0.000 n=10+10) |
| ContextFieldType/Bool-8 | 140ns ± 2% | 140ns ± 2% | ~ | (p=0.701 n=10+9) |
| ContextFieldType/Err-8 | 150ns ± 3% | 150ns ± 2% | ~ | (p=0.932 n=10+10) |
| ContextFieldType/Interfaces-8 | 631ns ± 1% | 628ns ± 1% | ~ | (p=0.108 n=10+10) |
| ContextFieldType/Floats-8 | 263ns ± 1% | 257ns ± 1% | -2.05% | (p=0.000 n=10+10) |
| ContextFieldType/Errs-8 | 205ns ± 2% | 204ns ± 2% | ~ | (p=0.499 n=10+9) |
| ContextFieldType/Dur-8 | 146ns ± 3% | 149ns ± 2% | +1.86% | (p=0.011 n=9+10) |
| ContextFieldType/Durs-8 | 372ns ± 1% | 367ns ± 1% | -1.24% | (p=0.000 n=10+10) |
| ContextFieldType/Bools-8 | 145ns ± 2% | 144ns ± 3% | ~ | (p=0.447 n=10+10) |
| ContextFieldType/Ints-8 | 157ns ± 3% | 157ns ± 2% | ~ | (p=0.976 n=9+9) |
| ContextFieldType/Float-8 | 147ns ± 3% | 148ns ± 4% | ~ | (p=0.385 n=9+10) |
| ContextFieldType/Strs-8 | 158ns ± 3% | 157ns ± 2% | ~ | (p=0.666 n=10+10) |
| ContextFieldType/Time-8 | 143ns ± 2% | 141ns ± 3% | -1.75% | (p=0.035 n=10+10) |
| ContextFieldType/Times-8 | 159ns ± 4% | 159ns ± 2% | ~ | (p=0.978 n=10+10) |
| ContextFieldType/Interface(Object)-8 | 252ns ± 2% | 251ns ± 2% | ~ | (p=0.415 n=10+10) |
| ContextFieldType/Timestamp-8 | 167ns ± 2% | 167ns ± 3% | ~ | (p=0.662 n=10+10) |
| ContextFieldType/Int-8 | 142ns ± 4% | 140ns ± 2% | -2.04% | (p=0.026 n=10+10) |
| ContextFieldType/Str-8 | 142ns ± 1% | 141ns ± 3% | -1.00% | (p=0.016 n=9+10) |
| ContextFieldType/Interface-8 | 253ns ± 1% | 249ns ± 3% | ~ | (p=0.055 n=9+10) |
| ContextFieldType/Interface(Objects)-8 | 632ns ± 1% | 624ns ± 1% | -1.20% | (p=0.000 n=10+9) |
| ContextFieldType/Object-8 | 194ns ± 2% | 192ns ± 2% | ~ | (p=0.083 n=10+10) |
| Hooks/Nop/Single-8 | 16.5ns ± 6% | 15.5ns ± 5% | -5.95% | (p=0.001 n=10+10) |
| Hooks/Nop/Multi-8 | 18.5ns ± 6% | 17.8ns ± 4% | -3.66% | (p=0.009 n=10+9) |
| Hooks/Simple-8 | 31.0ns ± 2% | 28.1ns ± 2% | -9.24% | (p=0.000 n=8+9) |
| Samplers/BasicSampler_1-8 | 0.65ns ± 1% | 0.63ns ± 1% | -1.78% | (p=0.000 n=10+9) |
| Samplers/BasicSampler_5-8 | 30.0ns ± 1% | 32.2ns ± 0% | +7.29% | (p=0.000 n=10+9) |
| Samplers/RandomSampler-8 | 92.8ns ± 1% | 90.8ns ± 1% | -2.25% | (p=0.000 n=10+10) |
| Samplers/BurstSampler-8 | 34.5ns ± 1% | 36.6ns ± 1% | +5.95% | (p=0.000 n=9+9) |
| Samplers/BurstSamplerNext-8 | 46.3ns ± 0% | 46.1ns ± 0% | -0.41% | (p=0.001 n=9+7) |
| ConsoleWriter-8 | 5.90µs ± 0% | 5.84µs ± 1% | -0.91% | (p=0.000 n=10+10) |
2020-05-05 19:44:34 -07:00
Olivier Poitrey
a06edf20d7
Fix zerolog.SetGlobalLevel readme
2020-04-20 13:50:01 -07:00
Blake Williams
fe394c81ce
Remove dependency on Goji ( #223 )
2020-04-12 22:02:06 -07:00
haozibi
1c32ee06a7
Fix: Event.stack initialization error ( #219 )
2020-03-30 10:16:40 -07:00
Milo
d9df1802de
Updated README ( #212 )
...
Updated README to reflect changes in the code - included new field types available, corrected typos.
2020-02-15 09:27:26 -08:00
Olivier Poitrey
f7c93dce1c
Fix test on non linux platform
2020-02-10 17:16:38 -08:00
Olivier Poitrey
68a3fd989d
Fix a crash condition when AnErr is used with a nil interface
2020-02-10 17:15:06 -08:00
Ilja Neumann
505b18daf2
Return written size when message was sent without error ( #190 )
...
- Fixes ErrShortWrite error if used with io.MultiWriter
2020-01-15 13:01:51 -08:00
Ryo Ota
65ed30bfb0
Use ```bash instead of ```go ( #209 )
2020-01-01 12:32:59 -08:00
Dmitry Savintsev
cb951d468e
fix the typo in 'guarantee' ( #203 )
2019-12-27 09:23:15 -08:00
wphan
d2a97b366b
fix ConsoleWriter for TimeFormatMicro ( #206 )
2019-12-20 09:34:21 -08:00
Olivier Poitrey
f1dd50b8c6
Fix trace again
2019-11-18 16:32:52 -08:00
Olivier Poitrey
686705b4f0
Remove Trace from SyslogWriter interface
2019-11-18 16:29:37 -08:00
Olivier Poitrey
5d9d7660cc
Expose the Err helper from the global logger
2019-11-18 16:22:50 -08:00
Olivier Poitrey
54e95fe699
Fix numbering of levels
2019-11-18 09:34:23 -08:00
guonaihong
e709c5d91e
Allow custom caller level ( #196 )
...
To modify the Caller, you can pass a jump to a few function call stacks.
```go
package main
import (
"github.com/rs/zerolog"
"github.com/rs/zerolog/log"
)
func myError() {
log.Debug().Caller(1).Str("test2", "v2").Send()
}
func foo() {
log.Debug().Caller(2).Str("test2", "v2").Send()
}
func myError2() {
foo()
}
func main() {
zerolog.TimeFieldFormat = zerolog.TimeFormatUnix
log.Debug().Caller().Str("test1", "v1").Send()
myError()
myError2()
}
```
2019-11-11 01:14:19 -08:00
CrazyMax
4502cc1942
Add TraceLevel ( #158 )
2019-11-04 11:39:22 -08:00
aca
43d05e8ddf
hlog: add custom header handler ( #197 )
2019-11-04 10:14:00 -08:00
Nelz
5861452d64
enable adding raw JSON to an array ( #145 )
...
* enable adding JSON to an array
* do not forget the comment
2019-11-04 09:47:06 -08:00
hazimj
7592fcbe60
make TimeFormatUnixMicro var exportable ( #189 )
2019-10-24 17:02:51 -07:00
Veselkov Konstantin
2e41c37ac4
Fixed comment for documentations ( #194 )
2019-10-24 03:02:36 -07:00
hazimj
19e454b4c7
Add Unix time format for microseconds ( #188 )
2019-10-09 20:35:32 -07:00
Veselkov Konstantin
33a4561a07
remove golint errors ( #187 )
2019-10-04 07:31:06 -07:00
Tim Satke
06599535fa
Bumped golang.org/x/tools ( #183 )
2019-08-28 14:58:12 -07:00
Charles Chan
61d1749124
Fix description in README for Global Settings ( #176 )
2019-08-11 07:03:49 +02:00
Stefan VanBuren
b806a5ecbe
Fix a few typos / clarify. ( #169 )
2019-07-19 18:10:43 +01:00
Zhang Sen
a7f9fc2a17
simplify code of event.msg() ( #165 )
2019-07-19 12:35:57 +01:00
Christian Muehlhaeuser
42d101e9f7
Fixed code formatting and import order using goimports ( #167 )
2019-07-19 12:07:15 +01:00
i6du
77a1695358
add send function for convenience ( #164 )
2019-07-03 23:16:03 -07:00
wangyuehong
60d4b07b61
Add GetLevel method ( #161 )
2019-06-20 16:44:55 -07:00
IxDay
9938a23cba
Fix JSON when object is first to be pushed ( #154 )
...
When pushing an object to the logger, and this object was the first
field added. Zerolog was outputting an invalid json blob, issuing an
extra comma before the object. This patch ensure that JSON is still valid
even if an object is pushed first to the logger.
Fixes #152
2019-06-04 23:48:09 -07:00
Vasiliy Faronov
1a2c7daec4
Fix misleading text about duplicate keys in JSON ( #141 )
...
Per RFC 8259 Section 4, behavior on duplicate keys is unspecified.
Fixes #140 .
2019-05-25 18:51:33 -07:00
Olivier Poitrey
ffd0e9625d
Optimize basic sampler
2019-05-23 17:01:18 -07:00
Olivier Poitrey
ad0401954a
Remove go 1.12 requirement
2019-05-23 11:44:28 -07:00
Olivier Poitrey
acf3980132
console: handle timestamp in ms correctly + fix UTC
2019-04-25 12:44:49 -07:00
Olivier Poitrey
33f552ec3d
Fix console write with missing level field
2019-04-25 12:12:24 -07:00
Olivier Poitrey
2a07580c27
Fix console writer when unix time stamp and/or no message field is used
2019-04-25 12:01:27 -07:00
Olivier Poitrey
3e85c4b21c
Add a new time format for UNIX timestamp in milliseconds
2019-04-19 15:48:31 -07:00
Olivier Poitrey
509d727fba
Add the Err function to ease the log errors.
2019-04-19 15:24:32 -07:00
Mike Camp
651d361cfe
Add CallerWithSkipFrameCount to the Context ( #98 ) ( #135 )
...
Add the ability to skip a specified number of stack frames
on a per context basis. Before this toe CallerSkipFrameCount
could only be set globally.
2019-03-04 16:41:18 -08:00
Soloman Weng
8e5449ab35
Allow using custom level field format ( #136 )
2019-03-01 16:08:23 -08:00
Olivier Poitrey
6d6350a511
Fix go1.12 test regression
...
Breakage is due to this change in go 1.12:
Tracebacks, runtime.Caller, and runtime.Callers no longer include compiler-generated initialization functions. Doing a traceback during the initialization of a global variable will now show a function named PKG.init.ializers.
Fix #137
2019-02-27 12:02:51 -08:00
mikeyrcamp
299ff038c1
Add support for customizing caller field format ( #133 ) ( #134 )
2019-02-20 11:39:29 -08:00
Kevin McConnell
4daee2b758
Don't use faint text in colorized console output ( #131 )
...
The faint text style doesn't seem to be supported by all terminals,
which means the default console output loses most of its coloring on
them.
This commit changes the color scheme to more widely-supported colors.
This also matches how it looked in earlier versions of this library.
2019-02-07 07:45:02 -08:00
Olivier Poitrey
aa55558e4c
Add support for stack trace extration of error fields ( #35 )
2019-01-03 11:04:23 -08:00
Ingmar Stein
c482b20623
ConsoleWriter: fix race condition ( #120 )
...
Alternative approach to #118 : fix the race condition by replacing the package-level customization settings with curried functions.
2018-12-07 09:59:01 -08:00
Ingmar Stein
7179aeef58
ConsoleWriter: reset buffer before returning it to the pool ( #119 )
...
The buffers put back into the pool should be equivalent to those generated by the `New` function.
2018-12-05 07:46:12 +00:00
Olivier Poitrey
8747b7b3a5
Add ErrorHandler global to allow handling of write errors
2018-11-20 10:56:21 -08:00
Olivier Poitrey
848482bc3d
Fix "could not write" error missing carriage return (again)
2018-11-12 17:50:30 -08:00
Yongzheng Lai
7bcaa1a99e
fix: console ts with json number ( #115 )
2018-11-12 00:50:17 -08:00