1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
//! log-cli: <small>Command line interface for log files.</small>
//!
//! ## Installation
//!
//! To install `log-cli` run:
//!
//! ```console
//! cargo install log-cli
//! ```
//!
//! ## Usage
//!
//! ```console
//! > log-cli sample.log
//!
//! ln00 2022-01-01 07:00:00,0 [info] module1  Message Subject: Text for a message.
//! ln01 2022-01-01 08:00:00,0 [info] module1  Message Subject: Text for a message.
//! ln02 2022-01-01 09:00:00,0 [debug] module2  Message Subject: Text for a message.
//! ln03 2022-01-01 10:00:00,0 [debug] module2  Message Subject: Text for a message.
//! ln04 2022-01-01 11:00:00,0 [debug] module2  Message Subject: Text for a message.
//! ln05 2022-01-01 12:00:00,0 [info] module3  Message Subject: Text for a message.
//! ln06 2022-01-01 13:00:00,0 [info] module3  Message Subject: Text for a message.
//! ln07 2022-01-01 14:00:00,0 [info] module1  Message Subject: Text for a message.
//! ln08 2022-01-01 15:00:00,0 [info] module1  Message Subject: Text for a message.
//! ln09 2022-01-01 16:00:00,0 [info] module1  Message Subject: Text for a message.
//! ln10 2022-01-01 17:00:00,0 [info] module1  Message Subject: Text for a message.
//! ln11 2022-01-01 18:00:00,0 [info] module1  Message Subject: Text for a message.
//! ln12 2022-01-01 19:00:00,0 [info] module1  Message Subject: Text for a message.
//! ln13 2022-01-01 20:00:00,0 [debug] module5  Message Subject: Text for a message.
//! ln14 2022-01-01 21:00:00,0 [info] module2  Message Subject: Text for a message.
//! ln15 2022-01-01 22:00:00,0 [info] module2  Message Subject: Text for a message.
//! ln16 2022-01-01 23:00:00,0 [info] module6  Message Subject: Text for a message.
//! ln17 2022-01-02 00:00:00,0 [warning] module1  Message Subject: Text for a message.
//! ln18 2022-01-02 01:00:00,0 [info] module10  Message Subject: Text for a message.
//! ln19 2022-01-02 02:00:00,0 [info] module1  Message Subject: Text for a message.
//! ln20 2022-01-02 03:00:00,0 [debug] module12  Message Subject: Text for a message.
//! ln21 2022-01-02 04:00:00,0 [warning] module11  Message Subject: Text for a message.
//! ln22 2022-01-02 05:00:00,0 [info] module7  Message Subject: Text for a message.
//! ln23 2022-01-02 06:00:00,0 [info] module6  Message Subject: Text for a message.
//! ```
//!
//! ### View using keywords
//!
//! ```console
//! > log-cli sample.log --keywords "[debug]" "[warning]"
//!
//! ln02 2022-01-01 09:00:00,0 [debug] module2  Message Subject: Text for a message.
//! ln03 2022-01-01 10:00:00,0 [debug] module2  Message Subject: Text for a message.
//! ln04 2022-01-01 11:00:00,0 [debug] module2  Message Subject: Text for a message.
//! ln13 2022-01-01 20:00:00,0 [debug] module5  Message Subject: Text for a message.
//! ln17 2022-01-02 00:00:00,0 [warning] module1  Message Subject: Text for a message.
//! ln20 2022-01-02 03:00:00,0 [debug] module12  Message Subject: Text for a message.
//! ln21 2022-01-02 04:00:00,0 [warning] module11  Message Subject: Text for a message.
//! ```
//!
//! ### View using a line range
//!
//! ```console
//! > log-cli sample.log --line-range 20 30
//!
//! ln20 2022-01-02 03:00:00,0 [debug] module12  Message Subject: Text for a message.
//! ln21 2022-01-02 04:00:00,0 [warning] module11  Message Subject: Text for a message.
//! ln22 2022-01-02 05:00:00,0 [info] module7  Message Subject: Text for a message.
//! ln23 2022-01-02 06:00:00,0 [info] module6  Message Subject: Text for a message.
//! ```
//!
//! ### More usage
//!
//! ```console
//! > log-cli --help
//!
//! Command line interface for log files.
//!
//! USAGE:
//!     log-cli [OPTIONS] [--] [LOG_FILE]
//!
//! ARGS:
//!     <LOG_FILE>    Path to log file to be read. By default if no additional flags are passed the
//!                   entire file will be displayed.
//!
//! OPTIONS:
//!     -h, --help                     Print help information
//!         --head <VALUE>             Display the top VALUE lines.
//!         --keywords <VALUE>...      Keywords to search for in the log file. Multiple keywords can be
//!                                    passed (ex: these are all keywords).
//!         --line-range <VALUE>...    Line number range to display. Must be a valid integer range
//!                                    format (ex: 0 10 to display the first 10 lines).
//!     -V, --version                  Print version information
//! ```

/// `File` reading logic for log files.
pub mod read;
/// Validation logic for argument values and more.
pub mod validate;
/// `File` display application logic for `log-cli`.
pub mod view;