├── .github └── workflows │ └── Python Version Testing.yml ├── .gitignore ├── CHANGELOG.md ├── LICENSE ├── README.md ├── SECURITY.md ├── files ├── README.md ├── client_log.txt ├── log0.txt ├── log1.txt ├── log2.txt ├── log3.txt ├── log3.txt.gz ├── log4.txt ├── log5.txt ├── log6.txt ├── log7_custom.txt ├── log8.jsonl ├── log9.jsonl ├── log_generator.py ├── mirror_server_8881.pcap ├── server_log.txt └── syslog1.txt ├── noxfile.py ├── pyproject.toml ├── requirements.test ├── requirements.txt ├── src └── logmerger │ ├── __init__.py │ ├── __main__.py │ ├── about.py │ ├── demo.py │ ├── file_reading.py │ ├── interactive_viewing.py │ ├── logmerger.py │ ├── merging.py │ ├── multiline_log_handler.py │ ├── timestamp_wrapper.py │ └── tui │ ├── __init__.py │ ├── dialogs.py │ └── validators.py ├── static ├── log1_log2_merged_tui.jpg ├── log1_log2_merged_tui_lr.jpg └── log1_log2_merged_tui_with_help.jpg ├── tests ├── __init__.py ├── log0_no_leading_timestamp.txt ├── log0_no_timestamps.txt ├── log1_10_log_lines.txt ├── log1_10_log_lines_ooo_duplicate_timestamp.txt ├── log1_10_log_lines_ooo_unique_timestamp.txt ├── log1_10_log_lines_with_multiline.txt ├── log1_61_log_lines.txt ├── log1_ooo_duplicate_timestamp.txt ├── log1_ooo_duplicate_timestamp_multiline.txt ├── log1_ooo_duplicate_timestamp_multiline2.txt ├── log1_ooo_timestamp_outside_window.txt ├── log1_ooo_unique_timestamp.txt ├── log9.jsonl ├── logmerger_testing.py ├── test_line_merging.py ├── test_timestamp_formats.py └── util.py └── tox.ini /.github/workflows/Python Version Testing.yml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ptmcg/logmerger/HEAD/.github/workflows/Python Version Testing.yml -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ptmcg/logmerger/HEAD/.gitignore -------------------------------------------------------------------------------- /CHANGELOG.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ptmcg/logmerger/HEAD/CHANGELOG.md -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ptmcg/logmerger/HEAD/LICENSE -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ptmcg/logmerger/HEAD/README.md -------------------------------------------------------------------------------- /SECURITY.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ptmcg/logmerger/HEAD/SECURITY.md -------------------------------------------------------------------------------- /files/README.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ptmcg/logmerger/HEAD/files/README.md -------------------------------------------------------------------------------- /files/client_log.txt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ptmcg/logmerger/HEAD/files/client_log.txt -------------------------------------------------------------------------------- /files/log0.txt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ptmcg/logmerger/HEAD/files/log0.txt -------------------------------------------------------------------------------- /files/log1.txt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ptmcg/logmerger/HEAD/files/log1.txt -------------------------------------------------------------------------------- /files/log2.txt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ptmcg/logmerger/HEAD/files/log2.txt -------------------------------------------------------------------------------- /files/log3.txt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ptmcg/logmerger/HEAD/files/log3.txt -------------------------------------------------------------------------------- /files/log3.txt.gz: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ptmcg/logmerger/HEAD/files/log3.txt.gz -------------------------------------------------------------------------------- /files/log4.txt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ptmcg/logmerger/HEAD/files/log4.txt -------------------------------------------------------------------------------- /files/log5.txt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ptmcg/logmerger/HEAD/files/log5.txt -------------------------------------------------------------------------------- /files/log6.txt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ptmcg/logmerger/HEAD/files/log6.txt -------------------------------------------------------------------------------- /files/log7_custom.txt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ptmcg/logmerger/HEAD/files/log7_custom.txt -------------------------------------------------------------------------------- /files/log8.jsonl: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ptmcg/logmerger/HEAD/files/log8.jsonl -------------------------------------------------------------------------------- /files/log9.jsonl: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ptmcg/logmerger/HEAD/files/log9.jsonl -------------------------------------------------------------------------------- /files/log_generator.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ptmcg/logmerger/HEAD/files/log_generator.py -------------------------------------------------------------------------------- /files/mirror_server_8881.pcap: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ptmcg/logmerger/HEAD/files/mirror_server_8881.pcap -------------------------------------------------------------------------------- /files/server_log.txt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ptmcg/logmerger/HEAD/files/server_log.txt -------------------------------------------------------------------------------- /files/syslog1.txt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ptmcg/logmerger/HEAD/files/syslog1.txt -------------------------------------------------------------------------------- /noxfile.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ptmcg/logmerger/HEAD/noxfile.py -------------------------------------------------------------------------------- /pyproject.toml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ptmcg/logmerger/HEAD/pyproject.toml -------------------------------------------------------------------------------- /requirements.test: -------------------------------------------------------------------------------- 1 | littletable 2 | rich 3 | textual 4 | 5 | tox 6 | pytest -------------------------------------------------------------------------------- /requirements.txt: -------------------------------------------------------------------------------- 1 | littletable 2 | rich 3 | textual 4 | pyshark -------------------------------------------------------------------------------- /src/logmerger/__init__.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/logmerger/__main__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ptmcg/logmerger/HEAD/src/logmerger/__main__.py -------------------------------------------------------------------------------- /src/logmerger/about.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ptmcg/logmerger/HEAD/src/logmerger/about.py -------------------------------------------------------------------------------- /src/logmerger/demo.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ptmcg/logmerger/HEAD/src/logmerger/demo.py -------------------------------------------------------------------------------- /src/logmerger/file_reading.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ptmcg/logmerger/HEAD/src/logmerger/file_reading.py -------------------------------------------------------------------------------- /src/logmerger/interactive_viewing.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ptmcg/logmerger/HEAD/src/logmerger/interactive_viewing.py -------------------------------------------------------------------------------- /src/logmerger/logmerger.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ptmcg/logmerger/HEAD/src/logmerger/logmerger.py -------------------------------------------------------------------------------- /src/logmerger/merging.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ptmcg/logmerger/HEAD/src/logmerger/merging.py -------------------------------------------------------------------------------- /src/logmerger/multiline_log_handler.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ptmcg/logmerger/HEAD/src/logmerger/multiline_log_handler.py -------------------------------------------------------------------------------- /src/logmerger/timestamp_wrapper.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ptmcg/logmerger/HEAD/src/logmerger/timestamp_wrapper.py -------------------------------------------------------------------------------- /src/logmerger/tui/__init__.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/logmerger/tui/dialogs.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ptmcg/logmerger/HEAD/src/logmerger/tui/dialogs.py -------------------------------------------------------------------------------- /src/logmerger/tui/validators.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ptmcg/logmerger/HEAD/src/logmerger/tui/validators.py -------------------------------------------------------------------------------- /static/log1_log2_merged_tui.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ptmcg/logmerger/HEAD/static/log1_log2_merged_tui.jpg -------------------------------------------------------------------------------- /static/log1_log2_merged_tui_lr.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ptmcg/logmerger/HEAD/static/log1_log2_merged_tui_lr.jpg -------------------------------------------------------------------------------- /static/log1_log2_merged_tui_with_help.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ptmcg/logmerger/HEAD/static/log1_log2_merged_tui_with_help.jpg -------------------------------------------------------------------------------- /tests/__init__.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /tests/log0_no_leading_timestamp.txt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ptmcg/logmerger/HEAD/tests/log0_no_leading_timestamp.txt -------------------------------------------------------------------------------- /tests/log0_no_timestamps.txt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ptmcg/logmerger/HEAD/tests/log0_no_timestamps.txt -------------------------------------------------------------------------------- /tests/log1_10_log_lines.txt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ptmcg/logmerger/HEAD/tests/log1_10_log_lines.txt -------------------------------------------------------------------------------- /tests/log1_10_log_lines_ooo_duplicate_timestamp.txt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ptmcg/logmerger/HEAD/tests/log1_10_log_lines_ooo_duplicate_timestamp.txt -------------------------------------------------------------------------------- /tests/log1_10_log_lines_ooo_unique_timestamp.txt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ptmcg/logmerger/HEAD/tests/log1_10_log_lines_ooo_unique_timestamp.txt -------------------------------------------------------------------------------- /tests/log1_10_log_lines_with_multiline.txt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ptmcg/logmerger/HEAD/tests/log1_10_log_lines_with_multiline.txt -------------------------------------------------------------------------------- /tests/log1_61_log_lines.txt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ptmcg/logmerger/HEAD/tests/log1_61_log_lines.txt -------------------------------------------------------------------------------- /tests/log1_ooo_duplicate_timestamp.txt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ptmcg/logmerger/HEAD/tests/log1_ooo_duplicate_timestamp.txt -------------------------------------------------------------------------------- /tests/log1_ooo_duplicate_timestamp_multiline.txt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ptmcg/logmerger/HEAD/tests/log1_ooo_duplicate_timestamp_multiline.txt -------------------------------------------------------------------------------- /tests/log1_ooo_duplicate_timestamp_multiline2.txt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ptmcg/logmerger/HEAD/tests/log1_ooo_duplicate_timestamp_multiline2.txt -------------------------------------------------------------------------------- /tests/log1_ooo_timestamp_outside_window.txt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ptmcg/logmerger/HEAD/tests/log1_ooo_timestamp_outside_window.txt -------------------------------------------------------------------------------- /tests/log1_ooo_unique_timestamp.txt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ptmcg/logmerger/HEAD/tests/log1_ooo_unique_timestamp.txt -------------------------------------------------------------------------------- /tests/log9.jsonl: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ptmcg/logmerger/HEAD/tests/log9.jsonl -------------------------------------------------------------------------------- /tests/logmerger_testing.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ptmcg/logmerger/HEAD/tests/logmerger_testing.py -------------------------------------------------------------------------------- /tests/test_line_merging.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ptmcg/logmerger/HEAD/tests/test_line_merging.py -------------------------------------------------------------------------------- /tests/test_timestamp_formats.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ptmcg/logmerger/HEAD/tests/test_timestamp_formats.py -------------------------------------------------------------------------------- /tests/util.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ptmcg/logmerger/HEAD/tests/util.py -------------------------------------------------------------------------------- /tox.ini: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ptmcg/logmerger/HEAD/tox.ini --------------------------------------------------------------------------------