目前有一支具SSL憑證的 Flask App,
並透過 Flask_APScheduler 定時存一個字串到 log file,
在 Debug Mode 下,程式會自動創建log.txt,
完全沒有報錯都能順利儲存資料進 log file,
但在 IIS 啟動站台後,卻無法正常輸出資料,也不會自動創建log.txt
不知道是不是 IIS 啟動有問題? 還是啟動前有什麼方式需要重新佈署讓IIS更新程式碼?
以下是我測試的程式碼:
from flask_apscheduler import APScheduler
from flask import Flask
import logging
app = Flask(__name__)
@app.route("/")
def home():
return "Hello, This is a ReporSender in IIS Server."
#設定Logging 參數
logging.basicConfig(level=logging.DEBUG, filename='./log.txt',
format='[%(asctime)s %(levelname)-8s] %(message)s',
datefmt='%Y%m%d %H:%M:%S',
)
#定時任務參數
class Config(object):
JOBS = [
{
'id': 'job1',
'func':'__main__:ReportSender',
'trigger':'interval',
'seconds':5
}
]
app.config.from_object(Config())# 為例項化的flask引入配置
def ReportSender():
try:
logging.critical('測試測試')
except Exception as e:
logging.error("Catch an exception.", exc_info=True)
if __name__ == "__main__":
try:
logging.critical("啟動成功")
scheduler = APScheduler()
scheduler.init_app(app)
scheduler.start()
app.run()
except Exception as e:
logging.error("Catch an exception.", exc_info=True)