myems/myems-normalization/main.py

39 lines
1.4 KiB
Python

import logging
from logging.handlers import RotatingFileHandler
from multiprocessing import Process
import meter
import offlinemeter
import virtualmeter
import virtualpoint
def main():
"""main"""
# create logger
logger = logging.getLogger('myems-normalization')
# specifies the lowest-severity log message a logger will handle,
# where debug is the lowest built-in severity level and critical is the highest built-in severity.
# For example, if the severity level is INFO, the logger will handle only INFO, WARNING, ERROR, and CRITICAL
# messages and will ignore DEBUG messages.
logger.setLevel(logging.ERROR)
# create file handler which logs messages
fh = RotatingFileHandler('myems-normalization.log', maxBytes=1024*1024, backupCount=1)
# create formatter and add it to the handlers
formatter = logging.Formatter('%(asctime)s - %(name)s - %(levelname)s - %(message)s')
fh.setFormatter(formatter)
# add the handlers to logger
logger.addHandler(fh)
# calculate energy consumption in hourly period
Process(target=meter.calculate_hourly, args=(logger,)).start()
Process(target=offlinemeter.calculate_hourly, args=(logger,)).start()
Process(target=virtualmeter.calculate_hourly, args=(logger,)).start()
# calculate virtual point value
Process(target=virtualpoint.calculate, args=(logger,)).start()
if __name__ == '__main__':
main()