Skip to content

Latest commit

 

History

History
112 lines (81 loc) · 3.61 KB

README.md

File metadata and controls

112 lines (81 loc) · 3.61 KB

tztail

Build Status crates.io

tztail (TimeZoneTAIL) allows you to view logs in the timezone you want. Its tail with timezone.

Install

brew tap thecasualcoder/stable
brew install tztail

Usage

$ tztail --help
tztail 1.0.0
tztail (TimeZoneTAIL) allows you to view logs in the timezone you want

USAGE:
    tztail [FILE]

OPTIONS:
    -t, --timezone <TIMEZONE>    Sets the timezone in which output should be printed. (Default: local timezone)
    -f, --follow                 Follow the file indefinitely as changes are added. (Default: Off)
        --format <FORMAT>        Custom format for parsing dates. (Default: autodetected patterns)
    -h, --help                   Prints help information
    -V, --version                Prints version information

ARGS:
    <FILE>    File to tail. STDIN by default

Features

  • Supports few standard formats with which auto detection is done when parsing logs.
  • Supports specifying custom format for parsing in case it is a non-standard format. See here for formats.
  • Autodetect source timezone if present in logs. Example (2014-11-28T12:00:09+0100 is CET)
  • Output logs to local timezone by default

Demo

demo

Autodetectable formats

Most used autodetectable formats

Name Example
RFC2822 Fri, 28 Nov 2014 12:00:09 +0000
RFC3339 2014-11-28T12:00:09+0000
Nginx Log format 04/Nov/2018:12:13:49

Usecase

This tool can be used to convert timestamps in a log to any desired timezone while tailing logs. Eg. In case your logs are in UTC and you want to view it in a different timezone say. Asia/Kolkata (IST), pipe the logs through tztail.

## Example usage
$ cat somelog # A log in UTC
2018-11-03 19:47:20.279044 I mvcc: finished scheduled compaction at 104794 (took 748.443µs)
2018-11-03 19:52:20.282913 I mvcc: store.index: compact 105127

$ cat somelog | tztail --timezone Asia/Kolkata # Timestamps converted to IST
2018-11-04 01:17:20.279044 I mvcc: finished scheduled compaction at 104794 (took 748.443µs)
2018-11-04 01:22:20.282913 I mvcc: store.index: compact 105127

It allows to specify a custom format as well.

## Example usage
$ cat somelog # A log in non-standard format
2018-11-03 20:07:20 mvcc: store.index: compact 106120
2018-11-03 20:07:20 mvcc: finished scheduled compaction at 106120 (took 933.25µs)

$ cat somelog | tztail -t Asia/Kolkata -f "%Y-%m-%d %H:%M:%S"
2018-11-04 01:37:20 mvcc: store.index: compact 106120
2018-11-04 01:37:20 mvcc: finished scheduled compaction at 106120 (took 933.25µs)

Building from source

Checkout the code and build locally

$ git clone https://github.com/thecasualcoder/tztail
$ cd tztail

# To build binary locally
$ cargo build --release

# To install binary locally in Cargo bin path
$ cargo install

# To run tests
$ cargo test

Roadmap

  • Support all standard datetime formats.
  • Allow custom datetime format.
  • Add option to read from file.
  • Auto-detect source timezone if possible.
  • Allow specifying source timezone explicitly.
  • Support GCP/AWS cloud logging formats.
  • Performance optimizations
  • Add support to pass time-window which would only show the logs in that time period