Some checks failed
- Added @click.version_option decorator to main() in commands.py - Imported __version__ from loglens package - Resolves CI build failure: 'loglens --version' command not found
51 lines
1.5 KiB
Python
51 lines
1.5 KiB
Python
import logging
|
|
import sys
|
|
import time
|
|
from typing import Optional
|
|
|
|
import click
|
|
from colorlog import ColoredFormatter
|
|
|
|
from loglens.analyzers.analyzer import LogAnalyzer
|
|
from loglens.formatters.json_formatter import JSONFormatter
|
|
from loglens.formatters.table_formatter import TableFormatter
|
|
from loglens.formatters.text_formatter import TextFormatter
|
|
from loglens.parsers.base import LogFormat
|
|
|
|
|
|
def setup_logging(verbosity: int = 0) -> None:
|
|
"""Setup logging configuration."""
|
|
log_levels = ["ERROR", "WARNING", "INFO", "DEBUG"]
|
|
level_idx = min(verbosity, len(log_levels) - 1)
|
|
level = log_levels[level_idx]
|
|
|
|
handler = ColoredFormatter(
|
|
"%(log_color)s%(levelname)-8s%(reset)s %(message)s",
|
|
log_colors={
|
|
"DEBUG": "cyan",
|
|
"INFO": "green",
|
|
"WARNING": "yellow",
|
|
"ERROR": "red",
|
|
"CRITICAL": "red,bg_white",
|
|
},
|
|
)
|
|
|
|
logger = logging.getLogger("loglens")
|
|
logger.setLevel(level)
|
|
logger.handlers = [handler]
|
|
|
|
|
|
@click.group()
|
|
@click.option("--verbosity", "-v", count=True, help="Increase output verbosity")
|
|
@click.option("--config", type=click.Path(exists=True), help="Path to config file")
|
|
@click.version_option(version="0.1.0", prog_name="loglens")
|
|
@click.pass_context
|
|
def main(ctx: click.Context, verbosity: int, config: str) -> None:
|
|
"""LogLens - Parse, analyze, and summarize log files."""
|
|
from loglens import __version__
|
|
|
|
ctx.ensure_object(dict)
|
|
ctx.obj["config"] = config
|
|
ctx.obj["version"] = __version__
|
|
setup_logging(verbosity)
|