Commit 00d30945 authored by Ambra Di Piano's avatar Ambra Di Piano
Browse files

add logging

parent b97587b7
Loading
Loading
Loading
Loading
+8 −1
Original line number Diff line number Diff line
@@ -20,7 +20,7 @@ class CheckConfiguration():
        return self

    def check_tags(self):
        tags = ['simulator', 'visibility']
        tags = ['simulator', 'visibility', 'logging']
        assert self.conf.keys() == tags
        return self

@@ -43,3 +43,10 @@ class CheckConfiguration():
        assert self.conf['visibility'].keys() == keys
        assert type(self.conf['visibility']['start_time']) == str
        return self

    def check_logging(self):
        keys = ['level', 'logfile']
        assert self.conf['logging'].keys() == keys
        assert (type(self.conf['logging']['level']) == str or type(self.conf['logging']['level']) == int) 
        assert type(self.conf['logging']['logfile']) == str 
        return self
 No newline at end of file
+28 −0
Original line number Diff line number Diff line
# *****************************************************************************
# Copyright (C) 2023 INAF
# This software is distributed under the terms of the BSD-3-Clause license
#
# Authors:
# Ambra Di Piano <ambra.dipiano@inaf.it>
# *****************************************************************************

import logging
from os import makedirs
from os.path import isdir, dirname

def set_logger(level, filename=None):
    log = logging.getLogger()
    log.setLevel(level)
    # console logger
    formatter = logging.Formatter('[%(asctime)s] %(name)s %(levelname)s: %(message)s')
    consoleHandler = logging.StreamHandler()
    consoleHandler.setFormatter(formatter)
    log.addHandler(consoleHandler)
    # file logger
    if filename is not None:
        if not isdir(dirname(filename)):
            makedirs(dirname(filename))
        fileHandler = logging.FileHandler(filename)
        fileHandler.setFormatter(formatter)
        log.addHandler(fileHandler)
    return log
 No newline at end of file
+4 −1
Original line number Diff line number Diff line
@@ -5,7 +5,7 @@ simulator:
  prod: prod5-v0.1
  pointing: random
  duration: 300
  samples: 5
  samples: 1
  seed: 1
  model: $TEMPLATES$/crab.xml
  output: /data01/homes/dipiano/astroRT/testing/output_tmp
@@ -13,3 +13,6 @@ simulator:
visibility:
  start_time: '2030-01-01T00:00:00'

logging:
  level: DEBUG
  logfile:
+49 −0
Original line number Diff line number Diff line
# *****************************************************************************
# Copyright (C) 2023 INAF
# This software is distributed under the terms of the BSD-3-Clause license
#
# Authors:
# Ambra Di Piano <ambra.dipiano@inaf.it>
# *****************************************************************************

import pytest
from astrort.utils.wrap import load_yaml_conf
from astrort.configure.check_configuration import CheckConfiguration

@pytest.mark.astrort_configuration
class TestCheckConfiguration:

    def test_check(self, astrort_configuration):
        configuration = load_yaml_conf(astrort_configuration)
        try:
            CheckConfiguration(configuration=configuration).check()
        except AssertionError as e:
            type(e) == AssertionError

    def test_check_tags(self, astrort_configuration):
        configuration = load_yaml_conf(astrort_configuration)
        try:
            CheckConfiguration(configuration=configuration).check_tags()
        except AssertionError as e:
            type(e) == AssertionError

    def test_check_simulator(self, astrort_configuration):
        configuration = load_yaml_conf(astrort_configuration)
        try:
            CheckConfiguration(configuration=configuration).check_simulator()
        except AssertionError as e:
            type(e) == AssertionError

    def test_check_visibility(self, astrort_configuration):
        configuration = load_yaml_conf(astrort_configuration)
        try:
            CheckConfiguration(configuration=configuration).check_visibility()
        except AssertionError as e:
            type(e) == AssertionError

    def test_check_logging(self, astrort_configuration):
        configuration = load_yaml_conf(astrort_configuration)
        try:
            CheckConfiguration(configuration=configuration).check_logging()
        except AssertionError as e:
            type(e) == AssertionError
 No newline at end of file