Skip to content
This repository has been archived by the owner on Sep 2, 2019. It is now read-only.

Δ:src:logger

Andrew T. DeSantis edited this page Dec 24, 2016 · 4 revisions

src/logger.py

Schema

type: object
required: [a, b, c]
properties:
  a: {type: number}
  b: {type: number}
  c: {type: number}

Environment

a: 1
b: 2
c: 3

Template

Δ with (data=None)
#!/usr/bin/env python
# -*- coding: utf-8 -*-


import sys
import logging,logging.config
import ruamel.yaml as yaml


CONFIG_FILE="etc/logger/deos.yml"


def get_config(fname):
    config=None
    with open(fname) as f:
        config=yaml.safe_load(f)
    return config


def get_logger(fname):
    config=get_config(fname)
    if config:
        logging.config.dictConfig(config)
        logger=logging.getLogger('DeOS')
        return logger
    return None


def log(case,logger,msg):
    if 'DEBUG'==case:
        logger.debug(msg)
    elif 'INFO'==case:
        logger.info(msg)
    elif 'WARN'==case:
        logger.warn(msg)
    elif 'ERROR'==case:
        logger.error(msg)
    elif 'CRITICAL'==case:
        logger.critical(msg)


def main():
    logger=get_logger(CONFIG_FILE)
    if 3==len(sys.argv) and logger:
        case,msg=sys.argv[1],sys.argv[2]
        log(case,logger,str(msg).replace('vm :','vm      :'
                               ).replace(': all :',': all     :'
                               ).replace('build :','build   :'
                               ).replace('check :','check   :'
                               ).replace('clean :','clean   :'
                               ).replace('chmod :','chmod   :'
                               ).replace('rm :','rm      :'
                               ).replace('venv :','venv    :'))


if __name__=="__main__":
    main()

Test

a: 1
b: 2
c: 3
Clone this wiki locally