알쓸전컴(알아두면 쓸모있는 전자 컴퓨터)

secs/gem 통신 로그 남기는 기본 코드 본문

산업용 프로토콜/secs gem open api

secs/gem 통신 로그 남기는 기본 코드

백곳 2017. 8. 9. 17:42

로그 기록기 소스


secs/gem 통신 기록 코드를 출력하기 위해서 communication_log_file_handler.py 을 만들어 줍니다. 



class CommunicationLogFileHandler(logging.Handler):
    def __init__(self, path, prefix=""):
        logging.Handler.__init__(self)

        self.path = path
        self.prefix = prefix

    def emit(self, record):
        filename = os.path.join(self.path, "{}com_{}.log".format(self.prefix, record.remoteName))
        with open(filename, 'a') as f:
            f.write(self.format(record) + "\n")


이 코드는 통신중 나오는 secs/gem 통신을 로그로 남길 목적으로 사용 되며 


 추후 코드에서 

from communication_log_file_handler import CommunicationLogFileHandler

commLogFileHandler = CommunicationLogFileHandler("C:/", "h")
commLogFileHandler.setFormatter(logging.Formatter("%(asctime)s: %(message)s"))
logging.getLogger("hsms_communication").addHandler(commLogFileHandler)
logging.getLogger("hsms_communication").propagate = False
logging.basicConfig(format='%(asctime)s %(name)s.%(funcName)s: %(message)s', level=logging.DEBUG)


이 코드를 입력하면 됩니다. 


communication_log_file_handler.py 에 만들어서 나중에 import 해서 사용할수 있도록 하겠습니다. 



Comments