Example #1
0
def _syslog_log_handler(config, hostname):
    host = config('syslog_server')
    port = int(config('syslog_server_port'))

    if config('syslog_server_protocol').lower() == 'tcp':
        socktype = SOCK_STREAM
    else:
        socktype = SOCK_DGRAM

    log_format = config('syslog_format')
    facility = config('syslog_facility')

    handler = SysLogHandler(
        (host, port),
        SysLogHandler.facility_names[facility],
        socktype=socktype,
    )
    log_format = log_format.format(time='%(asctime)s.%(msecs)d+00:00',
                                   sensor_hostname=hostname,
                                   facility=facility,
                                   priority='%(levelname)s',
                                   message='%(message)s')
    SYSLOG_DATE_FORMAT = '%Y-%m-%dT%H:%M:%S'
    handler.formatter = Formatter(log_format, datefmt=SYSLOG_DATE_FORMAT)
    handler.formatter.converter = gmtime  # UTC
    return handler
Example #2
0
def get_logger(name):
    formatter = logging.Formatter('{} {}'.format(name, FORMAT))
    logging.basicConfig(level=logging.INFO, format=FORMAT)
    logger = logging.getLogger(name)

    try:
        addr = config.syslogaddr.strip('"')
        port = int(config.syslogport.strip('"'))
        handler = SysLogHandler(address=(addr, port))
        handler.formatter = formatter
        logger.addHandler(handler)
    except Exception as e:
        try:
            handler = SysLogHandler()
            handler.formatter = formatter
            logger.addHandler(handler)
        except Exception as e:
            pass

    return logger
Example #3
0
def initlog(tag, level=config.LOG_LEVEL):
    syslogHander = SysLogHandler(address='/dev/log')
    formatter = logging.Formatter(
        tag +
        '[%(process)d]: %(levelname)s %(filename)s[line:%(lineno)d] %(message)s'
    )
    syslogHander.formatter = formatter
    streamHandler = logging.StreamHandler()
    logging.basicConfig(
        level=level,
        format='%(asctime)s ' + tag +
        '[%(process)d]: %(levelname)s %(filename)s[line:%(lineno)d] %(message)s',
        datefmt='%Y-%m-%d %H:%M:%S',
        handlers=[syslogHander, streamHandler])
Example #4
0
def create_logger(
    name,
    level="info",
    fmt="%(asctime)s %(levelname)s %(name)s: %(message)s",
    datefmt="%Y-%m-%d %H:%M:%S",
    add_console_handler=True,
    add_sys_handler=True,
):
    """Create a formatted logger
    Args:
        fmt: Format of the log message
        datefmt: Datetime format of the log message
    Examples:
        logger = create_logger(__name__, level="info")
        logger.info("Hello world")
    """

    level = {
        "debug": logging.DEBUG,
        "info": logging.INFO,
        "warn": logging.WARN,
        "error": logging.ERROR,
    }[level]

    logger = logging.getLogger(name)
    logger.setLevel(level)

    if add_console_handler:  # Output to stdout
        ch = logging.StreamHandler()
        ch.setLevel(level)
        chformatter = logging.Formatter(fmt=fmt, datefmt=datefmt)
        ch.setFormatter(chformatter)
        logger.addHandler(ch)

    if add_sys_handler:  # Output to syslog
        sh = SysLogHandler("/dev/log")
    # add syslog format to the handler
    formatter = logging.Formatter(
        fmt=
        'Python: { "loggerName":"%(name)s", "timestamp":"%(asctime)s", "pathName":"%(pathname)s", '
        '"logRecordCreationTime":"%(created)f", "functionName":"%(funcName)s", "levelNo":"%(levelno)s"'
        ', "lineNo":"%(lineno)d", "time":"%(msecs)d", "levelName":"%(levelname)s", "message":"%(message)s"}',
        datefmt=datefmt,
    )
    sh.formatter = formatter
    logger.addHandler(sh)
    return logger
Example #5
0
def _syslog_log_handler(config, hostname):
    host = config('syslog_server')
    port = int(config('syslog_server_port'))
    log_format = config('syslog_format')
    facility = config('syslog_facility')

    handler = SysLogHandler((host, port),
                            SysLogHandler.facility_names[facility])
    log_format = log_format.format(
        time='%(asctime)s.%(msecs)d+00:00',
        sensor_hostname=hostname,
        facility=facility,
        priority='%(levelname)s',
        message='%(message)s'
    )
    SYSLOG_DATE_FORMAT = '%Y-%m-%dT%H:%M:%S'
    handler.formatter = Formatter(log_format, datefmt=SYSLOG_DATE_FORMAT)
    handler.formatter.converter = gmtime  # UTC
    return handler
Example #6
0
import logging

from service import schema
from kubos_service.config import Config
from logging.handlers import SysLogHandler
import sys

config = Config("example-service")

# Setup logging
logger = logging.getLogger("example-service")
logger.setLevel(logging.DEBUG)
handler = SysLogHandler(address='/dev/log', facility=SysLogHandler.LOG_DAEMON)
formatter = logging.Formatter('example-service: %(message)s')
handler.formatter = formatter
logger.addHandler(handler)

# Set up a handler for logging to stdout
stdout = logging.StreamHandler(stream=sys.stdout)
stdout.setFormatter(formatter)
logger.addHandler(stdout)

from kubos_service import http_service
# Start an http service
http_service.start(config, schema.schema)

#from kubos_service import udp_service

# Start a udp service with optional context
# udp_service.start(config, schema, {'bus': '/dev/ttyS3'})
Example #7
0
#!/usr/bin/python
'''
Look for all the git folders in source and fetch or clone them to the destination
'''

import os
import subprocess
import logging
from logging.handlers import SysLogHandler

syslog_handler = SysLogHandler(address='/var/run/syslog')
syslog_handler.formatter = logging.Formatter(
    'git-copy: %(levelname)s %(message)s')

stream_handler = logging.StreamHandler()
stream_handler.formatter = logging.Formatter(
    '%(asctime)s %(levelname)s %(message)s')
logging.basicConfig(level=logging.INFO,
                    handlers=[syslog_handler, stream_handler])


def list_git_root(source_dir):
    for root, dirs, files in os.walk(source_dir):
        parent, simple_dir = os.path.split(root)
        for x in [
                '.Trash', 'tmp', 'ThirdParty', 'Caches', 'Google Drive',
                'Object Arts', '.cocoapods', 'Dropbox', '.build', "Wineskin",
                "SyncServices", ".cache", ".local", ".cookiecutters",
                "Aquamacs Emacs/Packages", ".emacs.d/straight/repos"
        ]:
            if x in dirs:
Example #8
0
    def __init__(self):
        """
        Initialize the hardware when the service starts
        """

        # Setup logging
        self.logger = logging.getLogger(self.app_name)
        self.logger.setLevel(logging.DEBUG)
        handler = SysLogHandler(address='/dev/log',
                                facility=SysLogHandler.LOG_DAEMON)
        formatter = logging.Formatter('{}[%(process)d]: %(message)s'.format(
            self.app_name))
        handler.formatter = formatter
        self.logger.addHandler(handler)

        # Get the configuration options for the service out of the `config.toml` file
        config = Config(self.app_name)
        sensor1_bus = config.raw['device']['bus1']
        sensor2_bus = config.raw['device']['bus2']

        # Create the sensor objects
        self.sensor1 = vcnl4040(sensor1_bus)
        self.sensor2 = vcnl4040(sensor2_bus)

        # Report settings
        print('\n--- Sensor 1 ---')
        print('I2C bus: ', self.sensor1.bus)
        print('I2C slave address: ', self.sensor1.addr)

        print('\n--- Sensor 2 ---')
        print('I2C bus: ', self.sensor2.bus)
        print('I2C slave address: ', self.sensor2.addr)

        self.telemetry = Telemetry(connected=self.noop(),
                                   power_on=False,
                                   integration_time=0,
                                   sensor1_value=0,
                                   sensor2_value=0,
                                   angle_of_arrival=0)

        print('\n--- Initializing ---')
        print('Power off proximity sensor 1: ',
              self.sensor1.powerOffProximity())
        print('Power off ambient sensor 1: ', self.sensor1.powerOffAmbient())
        print(
            'Set ambient integration time: ',
            self.sensor1.setAmbientIntegrationTime(self.getIntegrationFlag()))

        print('Power off proximity sensor 2: ',
              self.sensor2.powerOffProximity())
        print('Power off ambient sensor 2: ', self.sensor2.powerOffAmbient())
        print(
            'Set ambient integration time: ',
            self.sensor2.setAmbientIntegrationTime(self.getIntegrationFlag()))

        time.sleep(0.25)

        self.logger.info('Starting DORA sensor service')
        self.logger.info('Listening on: {}:{}'.format(config.ip, config.port))
        self.logger.info(
            'Using i2c bus {} for sensor 1 and bus {} for sensor 2'.format(
                self.sensor1.bus, self.sensor2.bus))
        self.start_time = datetime.datetime.now()