3

Python サービス内でロギング フレームワークを呼び出しても、ログ (ファイル、標準出力など) に出力が生成されないのはなぜですか?

私のpythonサービスには一般的な形式があります:

import logging

logger = logging.getLogger()
logger.setLevel(logging.DEBUG)
fh = logging.FileHandler('out.log')
logger.addHandler(fh)

logger.error("OUTSIDE")

class Service (win32serviceutil.ServiceFramework):
    _svc_name_ = "example"
    _svc_display_name_ = "example"
    _svc_description_ = "example"

    def __init__(self,args):
        logger.error("NOT LOGGED")
        win32serviceutil.ServiceFramework.__init__(self,args)
        self.hWaitStop = win32event.CreateEvent(None,0,0,None)
        servicemanager.LogMsg(servicemanager.EVENTLOG_INFORMATION_TYPE,
              servicemanager.PYS_SERVICE_STARTED,
              (self._svc_name_,''))

    def SvcStop(self):

        self.ReportServiceStatus(win32service.SERVICE_STOP_PENDING)
        win32event.SetEvent(self.hWaitStop)
        self.stop = True

    def SvcDoRun(self):

        self.ReportServiceStatus(win32service.SERVICE_RUNNING)
        self.main()

    def main(self):
        # Service Logic
        logger.error("NOT LOGGED EITHER")
        pass

logger.error への最初の呼び出しでは出力が生成されますが、サービス クラス内の 2 つの出力は生成されません (サービスをインストールして実行されていることを確認した後でも)。

4

3 に答える 3