Files
loglens-cli/loglens/cli/commands.py
7000pctAUTO 91237edcb0
Some checks failed
CI / test (3.10) (push) Has been cancelled
CI / test (3.11) (push) Has been cancelled
CI / test (3.12) (push) Has been cancelled
CI / test (3.9) (push) Has been cancelled
CI / lint (push) Has been cancelled
CI / build (push) Has been cancelled
fix: add --version option to Click CLI group
- Added @click.version_option decorator to main() in commands.py
- Imported __version__ from loglens package
- Resolves CI build failure: 'loglens --version' command not found
2026-02-02 09:25:03 +00:00

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)