Skip to content

Releases: pamburus/hl

v0.25.1

28 Jan 23:37
139b39e
Compare
Choose a tag to compare

Changed

Full Changelog: v0.25.0...v0.25.1

v0.25.0

24 Jan 07:59
de652ab
Compare
Choose a tag to compare

Added

Full Changelog: v0.24.2...v0.25.0

v0.24.2

09 Jan 20:47
2967077
Compare
Choose a tag to compare

What's Changed

  • fix: Fixed missing new-line characters in follow mode by @pamburus in #118

Full Changelog: v0.24.1...v0.24.2

v0.23.3

09 Jan 20:37
Compare
Choose a tag to compare

What's Changed

  • fix: Fixed missing new-line characters in follow mode by @pamburus in #118

Full Changelog: v0.23.2...v0.23.3

v0.24.1

29 Dec 12:57
4392186
Compare
Choose a tag to compare

What's Changed

Full Changelog: v0.24.0...v0.24.1

v0.24.0

27 Dec 20:06
cfaadd2
Compare
Choose a tag to compare

What's Changed

Added

  • Option --query by @pamburus in #112

    Usage

    • Command

      $ hl my-service.log --query 'level > info or status-code >= 400 or duration > 0.5'
      

      Displays messages that either have a level higher than info (i.e. warning or error) or have a status code field with a numeric value >= 400 or a duration field with a numeric value >= 0.5.

    • Command

      $ hl my-service.log -q '(request in (95c72499d9ec, 9697f7aa134f, bc3451d0ad60)) or (method != GET)'
      

      Displays all messages that have the 'request' field with one of these values, or the 'method' field with a value other than 'GET'.

    • Complete set of supported operators

      • Logical operators
        • Logical conjunction - and, &&
        • Logical disjunction - or, ||
        • Logical negation - not, !
      • Comparison operators
        • Equal - eq, =
        • Not equal - ne, !=
        • Greater than - gt, >
        • Greater or equal - ge, >=
        • Less than - lt, <
        • Less or equal - le, <=
      • String matching operators
        • Sub-string check - (contain, ~=), (not contain, !~=)
        • Wildcard match - (like), (not like)
          • Wildcard characters are: * for zero or more characters and ? for a single character
        • Regular expression match - (match, ~~=), (not match, !~~=)
      • Operators with sets
        • Test if value is one of the values in a set - in (v1, v2), not in (v1, v2)
    • Notes

      • Special field names that are reserved for filtering by predefined fields regardless of the actual JSON field names used to load the corresponding value: level, message, caller and logger.
      • To address a JSON field with one of these names instead of predefined fields, add a period before its name, i.e., .level will perform a match against the "level" JSON field.
      • To address a JSON field by its exact name, use a JSON-formatted string, i.e. -q '".level" = info'.
      • To specify special characters in field values, also use a JSON-formatted string, i.e.
        $ hl my-service.log -q 'message contain "Error:\nSomething unexpected happened"'
        

Full Changelog: v0.23.2...v0.24.0

v0.23.2

16 Dec 23:12
ebe8e0c
Compare
Choose a tag to compare

What's Changed

Added

  • Option --allow-prefix and environment variable HL_ALLOW_PREFIX by @pamburus in #111
    It allows non-JSON prefixes before JSON log messages

Changed

  • By default non-JSON prefixes are no longer allowed and should be enabled by --allow-prefix

Fixed

  • Fixed corrupted output in prefix mode by @pamburus in #109
  • Fixed unwanted display of messages without level when filtering by level by @pamburus in #110

Full Changelog: v0.23.0...v0.23.2

v0.23.0

14 Dec 20:47
2069700
Compare
Choose a tag to compare

What's Changed

Added

  • Support for an arbitrary prefix before JSON message by @pamburus in #108

Full Changelog: v0.22.1...v0.23.0

v0.22.1

13 Dec 19:40
734942e
Compare
Choose a tag to compare

What's Changed

Added

  • Support for numeric caller-line predefined field by @pamburus in #107

Full Changelog: v0.22.0...v0.22.1

v0.22.0

09 Dec 23:14
cad30c7
Compare
Choose a tag to compare

What's Changed

Added

  • Support for configuration compatible with ECS log format by @pamburus in #104

    • Added support for predefined field names that can match fields in nested objects when used with dot delimiters.
      For example, if log.origin.file.name is used for a predefined field name, it will match any of the
      • { "log.origin.file.name": "app.py" }
      • { "log": { "origin.file.name": "app.py" } }
      • { "log": { "origin": {"file.name": "app.py" } } }
      • { "log": { "origin": {"file": {"name": "app.py" } } } }
      • etc.
    • Added predefined caller-file and caller-line fields for separate processing of file name and line number.

    Example output

    23-11-02 08:09:10.423 |INF| __main__: backup for database bar in foo is already done today application='backup-rds' ecs={ version='1.6.0' } language='python' process={ name='MainProcess' pid=1 thread={ id=140610736142144 name='MainThread' } } ... @   app.py:107
    

    Suggested configuration file for ECS logs is etc/defaults/config-ecs.yaml
    These settings have not been added to the default configuration because it is not yet clear how they will affect performance.

Full Changelog: v0.21.0...v0.22.0