Skip to content

Commit

Permalink
Implement logging setup and enhance CLI logging for better diagnostics
Browse files Browse the repository at this point in the history
  • Loading branch information
pesnik committed Jan 18, 2025
1 parent 208dccd commit 70ffd3c
Show file tree
Hide file tree
Showing 4 changed files with 46 additions and 25 deletions.
5 changes: 5 additions & 0 deletions config/logging.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -43,6 +43,11 @@ loggers:
handlers: [json_file]
propagate: False

dagnostics.cli:
level: DEBUG
handlers: [console, file]
propagate: False

root:
level: WARNING
handlers: [console]
17 changes: 17 additions & 0 deletions src/dagnostics/cli/main.py
Original file line number Diff line number Diff line change
@@ -1,8 +1,16 @@
import logging

import typer

from dagnostics.core.config import load_config
from dagnostics.monitoring.collector import start_monitoring
from dagnostics.reporting.generator import setup_reporting
from dagnostics.utils.logger import setup_logging

setup_logging()

logger = logging.getLogger(__name__)
logger.info("Logger initialized for CLI module.")

app = typer.Typer()

Expand All @@ -11,27 +19,36 @@
def start():
"""Start the DAGnostics monitoring and reporting system."""
config = load_config()
logger.info("Starting DAGnostics...")
typer.echo("Starting DAGnostics...")
start_monitoring(config)
setup_reporting(config)
logger.info("DAGnostics started successfully.")


@app.command()
def analyze(dag_name: str):
"""Analyze a specific DAG."""
# config = load_config()
logger.info(f"Analyzing DAG: {dag_name}")
typer.echo(f"Analyzing DAG: {dag_name}")

logger.info(f"Analysis completed for DAG: {dag_name}")


@app.command()
def report(daily: bool = False):
"""Generate a report."""
# config = load_config()
if daily:
logger.info("Generating daily report...")
typer.echo("Generating daily report...")
else:
logger.info("Generating report...")
typer.echo("Generating report...")

logger.info("Report generation completed.")


def cli():
"""Entry point for the CLI."""
Expand Down
27 changes: 2 additions & 25 deletions src/dagnostics/main.py
Original file line number Diff line number Diff line change
@@ -1,30 +1,9 @@
import logging.config
from pathlib import Path
import logging

import yaml

from dagnostics.cli.main import cli
from dagnostics.core.config import load_config
from dagnostics.monitoring.collector import start_monitoring
from dagnostics.reporting.generator import setup_reporting


def setup_logging():
"""Load logging configuration from logging.yaml and ensure logs directory exists."""
logging_config_path = Path("config/logging.yaml")
if logging_config_path.exists():
with open(logging_config_path, "r") as f:
config = yaml.safe_load(f)

logs_dir = Path("logs")
logs_dir.mkdir(exist_ok=True)

logging.config.dictConfig(config)
else:
logging.basicConfig(level=logging.INFO)
logging.warning(
"Logging configuration file not found. Using default logging settings."
)
from dagnostics.utils.logger import setup_logging


def main():
Expand All @@ -42,8 +21,6 @@ def main():
setup_reporting(config)
logger.info("Reporting setup complete.")

cli()


if __name__ == "__main__":
main()
22 changes: 22 additions & 0 deletions src/dagnostics/utils/logger.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,22 @@
import logging.config
from pathlib import Path

import yaml


def setup_logging():
"""Load logging configuration from logging.yaml and ensure logs directory exists."""
logging_config_path = Path("config/logging.yaml")
if logging_config_path.exists():
with open(logging_config_path, "r") as f:
config = yaml.safe_load(f)

logs_dir = Path("logs")
logs_dir.mkdir(exist_ok=True)

logging.config.dictConfig(config)
else:
logging.basicConfig(level=logging.INFO)
logging.warning(
"Logging configuration file not found. Using default logging settings."
)

0 comments on commit 70ffd3c

Please sign in to comment.