Skip to content

Releases: pamburus/hl

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

v0.21.0

27 Nov 19:21
7bc6d4f
Compare
Choose a tag to compare

What's Changed

Added

  • Option --raw to request output of raw source JSON messages instead of formatted messages by @pamburus in #101

Changed

  • Flag -r that previously served as a shortcut for --raw-fields is now a shortcut for --raw option by @pamburus in #101

Other

Full Changelog: v0.20.0...v0.21.0

v0.20.0

07 Nov 21:02
6e57ec2
Compare
Choose a tag to compare

What's Changed

Added

Changed

  • Removed lower-casing of field keys by @pamburus in #60
  • Changed default field key value separator back to equal sign by @pamburus in #53
  • Changed default theme to universal by @pamburus in #56
  • Changed info level color in one-dark themes to cyan by @pamburus in #54
  • Case is now ignored in predefined field keys by @pamburus in #96

Fixed

  • Command line options -h and -l are now compatible with older versions by @pamburus in #47
  • Fixed archive publishing for windows by @pamburus in #72
  • Fixed accidental archive type change for windows by @pamburus in #73
  • Fixed field key value separator style for nested objects by @pamburus in #75
  • Updated time zone identifier column name in wikipedia article references by @pamburus in #83
  • Fixed filtering by fields in case number of fields is greater than 32 by @pamburus in #94

New Contributors

Full Changelog: v0.15.2...v0.20.0

v0.15.2

10 Jun 18:49
17b45d8
Compare
Choose a tag to compare

What's Changed

  • new: Now colon delimiter can be used in --filter command line option by @pamburus in #41

Full Changelog: v0.15.1...v0.15.2

v0.15.1

28 May 21:41
854ae6e
Compare
Choose a tag to compare

What's Changed

  • fix: Reverted style change in one-dark-green theme introduced in v0.15.0 by @pamburus in #40

Full Changelog: v0.15.0...v0.15.1