Commit graph

12188 commits

Author SHA1 Message Date
Daniel Liu
31ceca5ef1 log: avoid setting default slog logger in init (#28747)
slog.SetDefault has undesirable side effects. It also sets the default logger destination,
for example. So we should not call it by default in init.
2024-11-15 10:02:42 +08:00
Daniel Liu
14acdf2dd1 log: remove lazy, remove unused interfaces, unexport methods (#28622)
This change

- Removes interface `log.Format`,
- Removes method `log.FormatFunc`,
- unexports `TerminalHandler.TerminalFormat` formatting methods (renamed to `TerminalHandler.format`)
- removes the notion of `log.Lazy` values

The lazy handler was useful in the old log package, since it
could defer the evaluation of costly attributes until later in the
log pipeline: thus, if the logging was done at 'Trace', we could
skip evaluation if logging only was set to 'Info'.

With the move to slog, this way of deferring evaluation is no longer
needed, since slog introduced 'Enabled': the caller can thus do
the evaluate-or-not decision at the callsite, which is much more
straight-forward than dealing with lazy reflect-based evaluation.

Also, lazy evaluation would not work with 'native' slog, as in, these
two statements would be evaluated differently:

```golang
  log.Info("foo", "my lazy", lazyObj)
  slog.Info("foo", "my lazy", lazyObj)
```
2024-11-15 10:02:42 +08:00
Daniel Liu
9ae7402e35 slog: faster and less memory-consumption (#28621)
These changes improves the performance of the non-coloured terminal formatting, _quite a lot_.

```
name               old time/op    new time/op    delta
TerminalHandler-8    10.2µs ±15%     5.4µs ± 9%  -47.02%  (p=0.008 n=5+5)

name               old alloc/op   new alloc/op   delta
TerminalHandler-8    2.17kB ± 0%    0.40kB ± 0%  -81.46%  (p=0.008 n=5+5)

name               old allocs/op  new allocs/op  delta
TerminalHandler-8      33.0 ± 0%       5.0 ± 0%  -84.85%  (p=0.008 n=5+5)
```

I tried to _somewhat_ organize the commits, but the it might still be a bit chaotic. Some core insights:

- The function `terminalHandler.Handl` uses a mutex, and writes all output immediately to 'upstream'. Thus, it can reuse a scratch-buffer every time.
- This buffer can be propagated internally, making all the internal formatters either write directly to it,
- OR, make  use of the `tmp := buf.AvailableBuffer()` in some cases, where a byte buffer "extra capacity" can be temporarily used.
- The `slog` package  uses `Attr` by value. It makes sense to minimize operating on them, since iterating / collecting into a new slice, iterating again etc causes copy-on-heap. Better to operate on them only once.
- If we want to do padding, it's better to copy from a constant `space`-buffer than to invoke `bytes.Repeat` every single time.
2024-11-15 10:02:42 +08:00
Daniel Liu
ec4ca1ed6a all: replace log15 with slog (#28187) 2024-11-15 10:02:42 +08:00
Daniel Liu
b04ce3213a log: test for logging-output (#28373) 2024-11-15 10:02:42 +08:00
Daniel Liu
f9cae3b9aa internal, log: remove code for old unsupported go-versions (#28090) 2024-11-15 10:02:42 +08:00
Daniel Liu
41c4c9ba88 log: avoid stack lookups when not needed/used (#28069) 2024-11-15 10:02:42 +08:00
Daniel Liu
6b81e68537 log: use atomic types (#27763)
Co-authored-by: Felix Lange <fjl@twurst.com>
2024-11-15 10:02:42 +08:00
Daniel Liu
f75958c0ac log: report error when ctx key is non-string (#27226)
* log/format.go : invalid string cast fix

* log: some polish

---------

Co-authored-by: Martin Holst Swende <martin@swende.se>
2024-11-15 10:02:42 +08:00
Daniel Liu
2359a9ed34 log: add special casing of uint256 into the logger (#26936) 2024-11-15 10:02:42 +08:00
Daniel Liu
5eca853e52 log: improve documentation (#26753)
Add usage examples
2024-11-15 10:02:42 +08:00
Daniel Liu
ed4f989ff3 log: allow tabs in log messages (#26630)
* log: allow tabs in log messages

This fixes a regression where panic reports in RPC handlers were quoted
because they contain tab characters.

* Update format.go
2024-11-15 10:02:42 +08:00
Daniel Liu
dce80d77b7 log: better sanitation (#26556) 2024-11-15 10:02:42 +08:00
Daniel Liu
0902dcf37c log: modify lock defer unlock order in sync handler (#24667)
This modifies the order of Lock() defer Unlock() to follow the more
typically used pattern.
2024-11-15 10:02:41 +08:00
Daniel Liu
07443431d3 log: fix formatting of big.Int (#22679)
* log: fix formatting of big.Int

The implementation of formatLogfmtBigInt had two issues: it crashed when
the number was actually large enough to hit the big integer case, and
modified the big.Int while formatting it.

* log: don't call FormatLogfmtInt64 for int16

* log: separate from decimals back, not front

Co-authored-by: Péter Szilágyi <peterke@gmail.com>
2024-11-15 10:02:41 +08:00
Daniel Liu
aedfea681b all: make logs a bit easier on the eye to digest (#22665) 2024-11-15 10:02:41 +08:00
Daniel Liu
3d21631145 log: fix typos in comments (#21118) 2024-11-15 10:02:41 +08:00
Daniel Liu
cd9e18984e log: properly escape character sequences (#20987) 2024-11-15 10:02:41 +08:00
Daniel Liu
25a7e096ff log: delete RotatingFileHandler (#20586) 2024-11-15 10:02:41 +08:00
Daniel Liu
4d9936574b log: fix staticcheck warnings (#20388) 2024-11-15 10:02:41 +08:00
Daniel Liu
6873ca0687 log: change http:// to https:// on links in README.md (#20178)
docs: change http to https on links in log/README.md
2024-11-15 10:02:41 +08:00
Daniel Liu
81f59cb0ee log: do not pad values longer than 40 characters (#19592)
* log: Do not pad too long values

* log: gofmt
2024-11-15 10:02:41 +08:00
Daniel Liu
7865057840 internal/debug: support color terminal for cygwin/msys2 (#17740) 2024-11-15 10:02:41 +08:00
Daniel Liu
49e889eb7c log: logging feature (#17097) 2024-11-15 10:02:41 +08:00
Daniel Liu
38e5efbfe4 log: Change time format (#17054)
- Keep the tailing zeros.
- Limit precision to milliseconds.
2024-11-15 10:02:41 +08:00
Daniel Liu
f391463457 log: fixes for golint warnings (#16775) 2024-11-15 10:02:41 +08:00
Daniel Liu
643f02356d log: changed if-else blocks to conform with golint (#16661) 2024-11-15 10:02:41 +08:00
Daniel Liu
6459d0cf28
Merge pull request #687 from JukLee0ira/whisper
whisper: remove package whisper
2024-11-13 13:00:05 +08:00
JukLee0ira
85ede14a92 cmd: retire whisper flags (#22421) 2024-11-13 12:38:36 +08:00
JukLee0ira
cfb72501bf cmd/geth: print warning when whisper config is present in toml (#21544) 2024-11-13 12:38:07 +08:00
JukLee0ira
995db1892b .github: remove whisper from CODEOWNERS (#21527) 2024-11-13 12:37:42 +08:00
JukLee0ira
749037a97c whisper: remove whisper (#21487) 2024-11-13 12:37:10 +08:00
JukLee0ira
9a5fb2a9b8 whisper: Remove v5 (#18432) 2024-11-13 12:36:12 +08:00
Daniel Liu
5316e9b052
Merge pull request #729 from gzliudan/ws-port
node: allow WebSocket and HTTP works on the same port
2024-11-13 09:36:02 +08:00
Daniel Liu
22ad2f57ef node: fix websocket connection header check (#21646) 2024-11-13 09:35:41 +08:00
Daniel Liu
b1d6bec3bd cmd, node: dump empty value config (#21296) 2024-11-13 09:35:41 +08:00
Daniel Liu
ba23964062 node: shutdown HTTP and WebSocket servers gracefully (#20956) 2024-11-13 09:35:41 +08:00
Daniel Liu
b76438aafe node: allow WebSocket and HTTP work on same port (#20810) 2024-11-13 09:35:41 +08:00
Daniel Liu
57e5f5ec58 rpc: not log error if user configures --rpcapi=rpc (#20776) 2024-11-13 09:35:41 +08:00
Daniel Liu
fd2b21702c rpc: remove startup error for invalid modules, log it instead (#20684) 2024-11-13 09:35:41 +08:00
Daniel Liu
3f1b7d3a7b rpc: check module availability at startup (#20597) 2024-11-13 09:35:41 +08:00
Daniel Liu
d3c023ed37 cmd/XDC, internal, node: nuke XDC monitor (#19399) 2024-11-13 09:35:41 +08:00
Daniel Liu
68d9dcbee4 node: require LocalAppData variable (#19132) 2024-11-13 09:35:41 +08:00
Daniel Liu
3ed9ce95c1 eth, node: use APPDATA env to support cygwin/msys correctly (#17786) 2024-11-13 09:35:41 +08:00
Daniel Liu
fb2f822abe node: fix golint warnings 2024-11-13 09:35:41 +08:00
Daniel Liu
0da60fc517
Merge pull request #731 from gzliudan/trust-peer
rpc: add admin_addTrustedPeer and admin_removeTrustedPeer
2024-11-13 09:33:51 +08:00
Daniel Liu
f9f172af76 rpc: Add admin_addTrustedPeer and admin_removeTrustedPeer. (#16333) 2024-11-13 09:33:18 +08:00
Daniel Liu
e8a9807be6
Merge pull request #732 from gzliudan/gas-price
eth/gasprice: fix wrong gas price with empty blocks
2024-11-13 09:31:27 +08:00
Daniel Liu
59b06e4a03 eth/gasprice: reduce default gas price for empty block 2024-11-13 09:30:55 +08:00
Daniel Liu
de7203ac88 eth/gasprice: remove default from config (#30080) 2024-11-13 09:30:55 +08:00