尝试在 python 中记录 windows 服务实施时出错
Error trying to log a windows service implementation in python
我正在尝试在 Python 中构建一个 windows 服务并遵循了这篇文章:
http://thepythoncorner.com/dev/how-to-create-a-windows-service-in-python/
import time
import random
from pathlib import Path
from SMWinservice import SMWinservice
import logging
# Gets or creates a logger
logger = logging.getLogger(__name__)
# set log level
logger.setLevel(logging.WARNING)
# define file handler and set formatter
file_handler = logging.FileHandler('LogsOrderIt.log')
formatter = logging.Formatter('%(asctime)s :: %(levelname)s :: %(message)s (%(name)s)')
file_handler.setFormatter(formatter)
# add file handler to logger
logger.addHandler(file_handler)
_svc_name_ = "OrderItService"
_svc_display_name_ = "OrderIt Service"
_svc_description_ = "Service intended to order my pdf files from Buffer"
class OrderItService(SMWinservice):
def start(self):
self.isrunning = True
def stop(self):
self.isrunning = False
def main(self):
while self.isrunning:
random.seed()
x = random.randint(1, 1000000)
Path(f"c:\df\{x}.txt").touch()
logger.warning("New files named {path} created".format(a="c:\df\{x}.txt"))
time.sleep(5)
if __name__ == '__main__':
OrderItService.parse_command_line()
在上面的代码中,SMWinservice 是文章中的基础class,没有任何变化。
我想添加日志,所以我创建了一个记录器并尝试开始记录,但我遇到了以下错误:
The instance's SvcRun() method failed
<Error getting traceback - traceback.print_exception() failed
%2: %3
如果我 comment/remove 我的代码中的下面一行工作正常:
logger.warning("New files named {path} created".format(a="c:\df\{x}.txt"))
如果您能帮助我了解问题的根源,我将不胜感激。
谢谢
你可以尝试使用 f 字符串。
“路径”和“路径”是否应该相同?
路径(f"c:\df{x}.txt").touch()
logger.warning("已创建名为 {path} 的新文件".format(a="c:\df{x}.txt"))
如果是,试试这个
路径(f"c:\df{x}.txt").touch()
logger.warning(f"已创建名为 {Path} 的新文件")
不太确定这是否能解决任何问题,但我只是想知道
我正在尝试在 Python 中构建一个 windows 服务并遵循了这篇文章: http://thepythoncorner.com/dev/how-to-create-a-windows-service-in-python/
import time
import random
from pathlib import Path
from SMWinservice import SMWinservice
import logging
# Gets or creates a logger
logger = logging.getLogger(__name__)
# set log level
logger.setLevel(logging.WARNING)
# define file handler and set formatter
file_handler = logging.FileHandler('LogsOrderIt.log')
formatter = logging.Formatter('%(asctime)s :: %(levelname)s :: %(message)s (%(name)s)')
file_handler.setFormatter(formatter)
# add file handler to logger
logger.addHandler(file_handler)
_svc_name_ = "OrderItService"
_svc_display_name_ = "OrderIt Service"
_svc_description_ = "Service intended to order my pdf files from Buffer"
class OrderItService(SMWinservice):
def start(self):
self.isrunning = True
def stop(self):
self.isrunning = False
def main(self):
while self.isrunning:
random.seed()
x = random.randint(1, 1000000)
Path(f"c:\df\{x}.txt").touch()
logger.warning("New files named {path} created".format(a="c:\df\{x}.txt"))
time.sleep(5)
if __name__ == '__main__':
OrderItService.parse_command_line()
在上面的代码中,SMWinservice 是文章中的基础class,没有任何变化。
我想添加日志,所以我创建了一个记录器并尝试开始记录,但我遇到了以下错误:
The instance's SvcRun() method failed
<Error getting traceback - traceback.print_exception() failed
%2: %3
如果我 comment/remove 我的代码中的下面一行工作正常:
logger.warning("New files named {path} created".format(a="c:\df\{x}.txt"))
如果您能帮助我了解问题的根源,我将不胜感激。 谢谢
你可以尝试使用 f 字符串。
“路径”和“路径”是否应该相同?
路径(f"c:\df{x}.txt").touch() logger.warning("已创建名为 {path} 的新文件".format(a="c:\df{x}.txt"))
如果是,试试这个
路径(f"c:\df{x}.txt").touch() logger.warning(f"已创建名为 {Path} 的新文件")
不太确定这是否能解决任何问题,但我只是想知道