Change: Improved logging. Added a separate verbose option

This commit is contained in:
2025-12-16 19:22:46 +01:00
parent 66b1cc036b
commit a61f2bdf30
2 changed files with 11 additions and 7 deletions

View File

@@ -5,6 +5,11 @@ All notable changes to this project will be documented in this file.
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/), The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html). and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
## [0.4.1] - 2025-12-16
### Added
- **CLI**: Added `--verbose` / `-v` flag to switch between INFO (default) and DEBUG logging levels.
- **CLI**: Added `-r` short flag for `--dry-run`.
## [0.4.0] - 2025-12-16 ## [0.4.0] - 2025-12-16
### Added ### Added
- **Monitoring**: Added `--discovery` argument for Zabbix Low-Level Discovery (LLD) of partitioned tables. - **Monitoring**: Added `--discovery` argument for Zabbix Low-Level Discovery (LLD) of partitioned tables.

View File

@@ -21,7 +21,7 @@ from typing import Optional, Dict, List, Any, Union, Tuple
from contextlib import contextmanager from contextlib import contextmanager
# Semantic Versioning # Semantic Versioning
VERSION = '0.4.0' VERSION = '0.4.1'
# Constants # Constants
PART_PERIOD_REGEX = r'([0-9]+)(h|d|m|y)' PART_PERIOD_REGEX = r'([0-9]+)(h|d|m|y)'
@@ -543,9 +543,9 @@ class ZabbixPartitioner:
if mode != 'init' and not self.dry_run: if mode != 'init' and not self.dry_run:
pass pass
def setup_logging(config_log_type: str): def setup_logging(config_log_type: str, verbose: bool = False):
logger = logging.getLogger('zabbix_partitioning') logger = logging.getLogger('zabbix_partitioning')
logger.setLevel(logging.DEBUG) logger.setLevel(logging.DEBUG if verbose else logging.INFO)
formatter = logging.Formatter('%(asctime)s - %(levelname)s - %(message)s') formatter = logging.Formatter('%(asctime)s - %(levelname)s - %(message)s')
@@ -562,7 +562,8 @@ def parse_args():
parser = argparse.ArgumentParser(description='Zabbix Partitioning Manager') parser = argparse.ArgumentParser(description='Zabbix Partitioning Manager')
parser.add_argument('-c', '--config', default='/etc/zabbix/zabbix_partitioning.conf', help='Config file path') parser.add_argument('-c', '--config', default='/etc/zabbix/zabbix_partitioning.conf', help='Config file path')
parser.add_argument('-i', '--init', action='store_true', help='Initialize partitions') parser.add_argument('-i', '--init', action='store_true', help='Initialize partitions')
parser.add_argument('--dry-run', action='store_true', help='Simulate queries') parser.add_argument('-r', '--dry-run', action='store_true', help='Simulate queries')
parser.add_argument('-v', '--verbose', action='store_true', help='Enable debug logging')
# Monitoring args # Monitoring args
parser.add_argument('--discovery', action='store_true', help='Output Zabbix LLD JSON') parser.add_argument('--discovery', action='store_true', help='Output Zabbix LLD JSON')
@@ -604,12 +605,10 @@ def main():
elif args.init: mode = 'init' elif args.init: mode = 'init'
# Setup logging # Setup logging
# If discovery or check, we mute info logs to stdout to keep output clean,
# unless errors happen.
if mode in ['discovery', 'check']: if mode in ['discovery', 'check']:
logging.basicConfig(level=logging.ERROR) # Only show critical errors logging.basicConfig(level=logging.ERROR) # Only show critical errors
else: else:
setup_logging(config.get('logging', 'console')) setup_logging(config.get('logging', 'console'), verbose=args.verbose)
logger = logging.getLogger('zabbix_partitioning') logger = logging.getLogger('zabbix_partitioning')