iotex-core
iotex-core copied to clipboard
[log] zerolog for better log format
Description
Please include a summary of the changes and the related issue. Please also include relevant motivation and context. List any dependencies that are required for this change.
Fixes https://github.com/iotexproject/iotex-core/issues/3476
Type of change
Please delete options that are not relevant.
- [] Bug fix (non-breaking change which fixes an issue)
- [] New feature (non-breaking change which adds functionality)
- [] Code refactor or improvement
- [] Breaking change (fix or feature that would cause a new or changed behavior of existing functionality)
- [] This change requires a documentation update
How Has This Been Tested?
Please describe the tests that you ran to verify your changes. Provide instructions so we can reproduce. Please also list any relevant details for your test configuration
- [] make test
- [] fullsync
- [] Other test (please specify)
Test Configuration:
- Firmware version:
- Hardware:
- Toolchain:
- SDK:
Checklist:
- [] My code follows the style guidelines of this project
- [] I have performed a self-review of my code
- [] I have commented my code, particularly in hard-to-understand areas
- [] I have made corresponding changes to the documentation
- [] My changes generate no new warnings
- [] I have added tests that prove my fix is effective or that my feature works
- [] New and existing unit tests pass locally with my changes
- [] Any dependent changes have been merged and published in downstream modules
Just modify the starting log format for viewing. Leave the zap log because most codes use zap function. After zerolog merged, we can replace zap with zerolog.
output in cmdline:
/var/log/s.log is json formatter:
One note: "github.com/iotexproject/go-p2p"
use zap.Logger
now. If change to zerolog, this project should also change together.
https://github.com/iotexproject/iotex-core/blob/c75411c117fb90cf4f7fb01b755c8f9b245ec7ac/p2p/agent.go#L195
Could this format of logs be indexed?
see comment in https://github.com/iotexproject/iotex-core/issues/3476, we need to achieve:
- the output to log file is still same json format, for ELK log collection/analysis purpose
- on top of that, if it's possible to make the output to commandline window better
replace with zerolog does not seem a good solution to achieve both
zap Encoder
supportted customize log format,you can implement an encoder to replace default console encoder.
Codecov Report
Merging #3499 (ce2faee) into master (a20e489) will decrease coverage by
1.07%
. The diff coverage is70.03%
.
@@ Coverage Diff @@
## master #3499 +/- ##
==========================================
- Coverage 75.43% 74.35% -1.08%
==========================================
Files 247 259 +12
Lines 22845 23536 +691
==========================================
+ Hits 17233 17501 +268
- Misses 4685 5107 +422
- Partials 927 928 +1
Impacted Files | Coverage Δ | |
---|---|---|
action/action_deserializer.go | 57.14% <ø> (ø) |
|
action/protocol/poll/nativestaking.go | 41.08% <0.00%> (-0.65%) |
:arrow_down: |
action/protocol/poll/staking_command.go | 10.71% <0.00%> (ø) |
|
action/protocol/staking/read_state.go | 15.38% <0.00%> (ø) |
|
action/protocol/vote/probationlist.go | 87.50% <ø> (ø) |
|
api/blocklistener.go | 70.73% <0.00%> (ø) |
|
api/websocket.go | 5.17% <0.00%> (-0.19%) |
:arrow_down: |
blockchain/block/block_deserializer.go | 71.15% <ø> (ø) |
|
blockchain/blockchain.go | 0.89% <0.00%> (ø) |
|
blockchain/filedao/filedao_legacy.go | 85.80% <ø> (ø) |
|
... and 105 more |
:mega: We’re building smart automated test selection to slash your CI/CD build times. Learn more
see comment in #3476, we need to achieve:
- the output to log file is still same json format, for ELK log collection/analysis purpose
- on top of that, if it's possible to make the output to commandline window better
replace with zerolog does not seem a good solution to achieve both
the log file is json format. colored printing in cmmandline. see the picture above
see comment in #3476, we need to achieve:
- the output to log file is still same json format, for ELK log collection/analysis purpose
- on top of that, if it's possible to make the output to commandline window better
replace with zerolog does not seem a good solution to achieve both
Because of ELK, the log file format can't change. I'll try to find the humanly-printed setting by zap console encoder.
add zap console encoder
s.log keeps the same.
ping @dustinxie @CoderZhi @Liuhaai - pls take another look
Kudos, SonarCloud Quality Gate passed!
0 Bugs
0 Vulnerabilities
0 Security Hotspots
0 Code Smells
No Coverage information
0.0% Duplication
Thanks for making this one @huof6829 @dustinxie