最近在写了几个mac程序后发现日志文件找不到,或者日志文件找到了里面内容为空,有时还出现程序闪退情况,最后发现是日志文件没有设置encoding的格式。
这里必须要设置encoding,如果不设置在window环境下无问题,在macos环境下打包发现找不到日志文件,最后发现左键选择显示包内容,在Contents--Resource里面有日志文件,但是又发现日志文件为空,找了一周,最后发现是encoding没有设置格式,设置后就有了。我也无语了!!!
正确代码如下:(可以查看下视频:https://live.csdn.net/v/158172)
#!/usr/bin/env python
# -*- coding: utf-8 -*-
# @Time : 2021/3/31 上午10:47
# @Author : wangying
# @Site :
# @File : new_rumps.py
# @Software: PyCharm
import rumps
from loguru import logger
import os
BASE_DIR = os.getcwd()
# # 日志文件配置
LOG_DIR = os.path.join(BASE_DIR,"log")
if os.path.exists(LOG_DIR) is False:
os.makedirs(LOG_DIR)
logger.add(os.path.join(LOG_DIR,"./error.log"),
level='DEBUG',
encoding="utf-8",
format='{time:YYYY-MM-DD HH:mm:ss} - {level} - {file} - {line} - {message}',
rotation="10 MB")
logger.info('可以写日志了')
logger.error('可以写日志了')
logger.debug('可以写日志了')
logger.info('可以写日志了')
logger.info('绝对路径')
logger.info(os.getcwd())
class AwesomeStatusBarApp(rumps.App):
def __init__(self):
super(AwesomeStatusBarApp, self).__init__("Awesome App",icon='pony.jpg',title='键盘')
self.menu = [
rumps.MenuItem('About', icon='pony.jpg', dimensions=(18, 18)),
'日志文件测试','监控状态(开启)','通知'
]
@rumps.clicked("日志文件测试")
def prefs(self, _):
logger.info('这是 loggging info message')
logger.info('这是 loggging debug message')
logger.info('这是 loggging a warning message')
rumps.alert("日志文件注入成功!")
@rumps.clicked("监控状态(开启)")
def onoff(self, sender):
sender.state = not sender.state
if sender.state == True:
rumps.alert("键盘监控开启")
pass
else:
rumps.alert("键盘监控关闭")
pass
@rumps.clicked("通知")
def sayhi(self, _):
rumps.notification("键盘监控通知", "通知详情", "通知内容 hi!!1")
if __name__ == '__main__':
AwesomeStatusBarApp().run()