2025-12-12 11:32:38,965 INFO: KaMiXiTong startup [in D:\work\code\python\KaMiXiTong\master\config.py:159] 2025-12-12 11:32:39,205 INFO: KaMiXiTong startup [in D:\work\code\python\KaMiXiTong\master\app\__init__.py:169] 2025-12-12 11:32:39,205 INFO: KaMiXiTong startup [in D:\work\code\python\KaMiXiTong\master\app\__init__.py:169] 2025-12-12 11:32:39,359 INFO: 定时任务调度器初始化完成 [in D:\work\code\python\KaMiXiTong\master\app\utils\scheduler.py:75] 2025-12-12 11:32:39,359 INFO: ʱʼ [in D:\work\code\python\KaMiXiTong\master\app\utils\scheduler.py:75] 2025-12-12 11:32:39,359 INFO: 已添加以下定时任务: [in D:\work\code\python\KaMiXiTong\master\app\utils\scheduler.py:76] 2025-12-12 11:32:39,359 INFO: ¶ʱ: [in D:\work\code\python\KaMiXiTong\master\app\utils\scheduler.py:76] 2025-12-12 11:32:39,359 INFO: 1. 每小时更新过期卡密状态 [in D:\work\code\python\KaMiXiTong\master\app\utils\scheduler.py:77] 2025-12-12 11:32:39,359 INFO: 1. ÿСʱ¹ڿ״̬ [in D:\work\code\python\KaMiXiTong\master\app\utils\scheduler.py:77] 2025-12-12 11:32:39,359 INFO: 2. 每天凌晨2点卡密健康检查 [in D:\work\code\python\KaMiXiTong\master\app\utils\scheduler.py:78] 2025-12-12 11:32:39,359 INFO: 2. ÿ賿2㿨ܽ [in D:\work\code\python\KaMiXiTong\master\app\utils\scheduler.py:78] 2025-12-12 11:32:39,359 INFO: 3. 每周日凌晨3点清理日志 [in D:\work\code\python\KaMiXiTong\master\app\utils\scheduler.py:79] 2025-12-12 11:32:39,359 INFO: 3. ÿ賿3־ [in D:\work\code\python\KaMiXiTong\master\app\utils\scheduler.py:79] 2025-12-12 11:32:39,363 INFO: 定时任务调度器已启动 [in D:\work\code\python\KaMiXiTong\master\app\utils\scheduler.py:96] 2025-12-12 11:32:39,363 INFO: ʱ [in D:\work\code\python\KaMiXiTong\master\app\utils\scheduler.py:96] 2025-12-12 11:32:39,363 INFO: 后台定时任务调度器已启动 [in D:\work\code\python\KaMiXiTong\master\app\__init__.py:181] 2025-12-12 11:32:39,363 INFO: ̨ʱ [in D:\work\code\python\KaMiXiTong\master\app\__init__.py:181] 2025-12-12 11:32:56,330 INFO: 收到登录请求 - IP: 127.0.0.1, User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/143.0.0.0 Safari/537.36 Edg/143.0.0.0 [in D:\work\code\python\KaMiXiTong\master\app\web\__init__.py:20] 2025-12-12 11:32:56,330 INFO: յ¼ - IP: 127.0.0.1, User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/143.0.0.0 Safari/537.36 Edg/143.0.0.0 [in D:\work\code\python\KaMiXiTong\master\app\web\__init__.py:20] 2025-12-12 11:32:56,330 INFO: 登录尝试 - 用户名: admin, 来源IP: 127.0.0.1 [in D:\work\code\python\KaMiXiTong\master\app\web\__init__.py:49] 2025-12-12 11:32:56,330 INFO: ¼ - û: admin, ԴIP: 127.0.0.1 [in D:\work\code\python\KaMiXiTong\master\app\web\__init__.py:49] 2025-12-12 11:32:56,725 INFO: 登录成功 - 用户名: admin, IP: 127.0.0.1 [in D:\work\code\python\KaMiXiTong\master\app\web\__init__.py:79] 2025-12-12 11:32:56,725 INFO: ¼ɹ - û: admin, IP: 127.0.0.1 [in D:\work\code\python\KaMiXiTong\master\app\web\__init__.py:79] 2025-12-12 11:32:56,997 INFO: License search params - page: 1, per_page: 5, product_id: None, status: 1, type: None, keyword: [in D:\work\code\python\KaMiXiTong\master\app\api\license.py:30] 2025-12-12 11:32:56,997 INFO: License search params - page: 1, per_page: 5, product_id: None, status: 1, type: None, keyword: [in D:\work\code\python\KaMiXiTong\master\app\api\license.py:30] 2025-12-12 11:32:57,041 INFO: License search results - total: 0, pages: 0 [in D:\work\code\python\KaMiXiTong\master\app\api\license.py:76] 2025-12-12 11:32:57,041 INFO: License search results - total: 0, pages: 0 [in D:\work\code\python\KaMiXiTong\master\app\api\license.py:76] 2025-12-12 11:33:01,693 ERROR: 删除产品失败: (pymysql.err.IntegrityError) (1048, "Column 'product_id' cannot be null") [SQL: UPDATE package SET product_id=%(product_id)s, update_time=%(update_time)s WHERE package.package_id = %(package_package_id)s] [parameters: [{'product_id': None, 'update_time': datetime.datetime(2025, 12, 12, 3, 33, 1, 689646), 'package_package_id': 'PKG_DEMO_1'}, {'product_id': None, 'update_time': datetime.datetime(2025, 12, 12, 3, 33, 1, 689646), 'package_package_id': 'PKG_DEMO_2'}, {'product_id': None, 'update_time': datetime.datetime(2025, 12, 12, 3, 33, 1, 689646), 'package_package_id': 'PKG_DEMO_3'}]] (Background on this error at: https://sqlalche.me/e/20/gkpj) [in D:\work\code\python\KaMiXiTong\master\app\api\product.py:516] 2025-12-12 11:33:01,693 ERROR: ɾƷʧ: (pymysql.err.IntegrityError) (1048, "Column 'product_id' cannot be null") [SQL: UPDATE package SET product_id=%(product_id)s, update_time=%(update_time)s WHERE package.package_id = %(package_package_id)s] [parameters: [{'product_id': None, 'update_time': datetime.datetime(2025, 12, 12, 3, 33, 1, 689646), 'package_package_id': 'PKG_DEMO_1'}, {'product_id': None, 'update_time': datetime.datetime(2025, 12, 12, 3, 33, 1, 689646), 'package_package_id': 'PKG_DEMO_2'}, {'product_id': None, 'update_time': datetime.datetime(2025, 12, 12, 3, 33, 1, 689646), 'package_package_id': 'PKG_DEMO_3'}]] (Background on this error at: https://sqlalche.me/e/20/gkpj) [in D:\work\code\python\KaMiXiTong\master\app\api\product.py:516] 2025-12-12 11:33:03,689 INFO: License search params - page: 1, per_page: 10, product_id: None, status: None, type: None, keyword: [in D:\work\code\python\KaMiXiTong\master\app\api\license.py:30] 2025-12-12 11:33:03,689 INFO: License search params - page: 1, per_page: 10, product_id: None, status: None, type: None, keyword: [in D:\work\code\python\KaMiXiTong\master\app\api\license.py:30] 2025-12-12 11:33:03,707 INFO: License search results - total: 111, pages: 12 [in D:\work\code\python\KaMiXiTong\master\app\api\license.py:76] 2025-12-12 11:33:03,707 INFO: License search results - total: 111, pages: 12 [in D:\work\code\python\KaMiXiTong\master\app\api\license.py:76] 2025-12-12 11:33:05,877 INFO: License search params - page: 1, per_page: 10, product_id: None, status: None, type: None, keyword: [in D:\work\code\python\KaMiXiTong\master\app\api\license.py:30] 2025-12-12 11:33:05,877 INFO: License search params - page: 1, per_page: 10, product_id: None, status: None, type: None, keyword: [in D:\work\code\python\KaMiXiTong\master\app\api\license.py:30] 2025-12-12 11:33:05,889 INFO: License search results - total: 110, pages: 11 [in D:\work\code\python\KaMiXiTong\master\app\api\license.py:76] 2025-12-12 11:33:05,889 INFO: License search results - total: 110, pages: 11 [in D:\work\code\python\KaMiXiTong\master\app\api\license.py:76] 2025-12-12 12:08:06,407 INFO: KaMiXiTong startup [in D:\work\code\python\KaMiXiTong\master\config.py:159] 2025-12-12 12:08:06,693 INFO: KaMiXiTong startup [in D:\work\code\python\KaMiXiTong\master\app\__init__.py:169] 2025-12-12 12:08:06,693 INFO: KaMiXiTong startup [in D:\work\code\python\KaMiXiTong\master\app\__init__.py:169] 2025-12-12 12:08:06,878 INFO: 定时任务调度器初始化完成 [in D:\work\code\python\KaMiXiTong\master\app\utils\scheduler.py:75] 2025-12-12 12:08:06,878 INFO: ʱʼ [in D:\work\code\python\KaMiXiTong\master\app\utils\scheduler.py:75] 2025-12-12 12:08:06,878 INFO: 已添加以下定时任务: [in D:\work\code\python\KaMiXiTong\master\app\utils\scheduler.py:76] 2025-12-12 12:08:06,878 INFO: ¶ʱ: [in D:\work\code\python\KaMiXiTong\master\app\utils\scheduler.py:76] 2025-12-12 12:08:06,878 INFO: 1. 每小时更新过期卡密状态 [in D:\work\code\python\KaMiXiTong\master\app\utils\scheduler.py:77] 2025-12-12 12:08:06,878 INFO: 1. ÿСʱ¹ڿ״̬ [in D:\work\code\python\KaMiXiTong\master\app\utils\scheduler.py:77] 2025-12-12 12:08:06,878 INFO: 2. 每天凌晨2点卡密健康检查 [in D:\work\code\python\KaMiXiTong\master\app\utils\scheduler.py:78] 2025-12-12 12:08:06,878 INFO: 2. ÿ賿2㿨ܽ [in D:\work\code\python\KaMiXiTong\master\app\utils\scheduler.py:78] 2025-12-12 12:08:06,878 INFO: 3. 每周日凌晨3点清理日志 [in D:\work\code\python\KaMiXiTong\master\app\utils\scheduler.py:79] 2025-12-12 12:08:06,878 INFO: 3. ÿ賿3־ [in D:\work\code\python\KaMiXiTong\master\app\utils\scheduler.py:79] 2025-12-12 12:08:06,881 INFO: 定时任务调度器已启动 [in D:\work\code\python\KaMiXiTong\master\app\utils\scheduler.py:96] 2025-12-12 12:08:06,881 INFO: ʱ [in D:\work\code\python\KaMiXiTong\master\app\utils\scheduler.py:96] 2025-12-12 12:08:06,882 INFO: 后台定时任务调度器已启动 [in D:\work\code\python\KaMiXiTong\master\app\__init__.py:181] 2025-12-12 12:08:06,882 INFO: ̨ʱ [in D:\work\code\python\KaMiXiTong\master\app\__init__.py:181] 2025-12-12 12:14:15,845 INFO: KaMiXiTong startup [in D:\work\code\python\KaMiXiTong\master\config.py:159] 2025-12-12 12:14:16,144 INFO: KaMiXiTong startup [in D:\work\code\python\KaMiXiTong\master\app\__init__.py:169] 2025-12-12 12:14:16,144 INFO: KaMiXiTong startup [in D:\work\code\python\KaMiXiTong\master\app\__init__.py:169] 2025-12-12 12:14:16,269 INFO: 定时任务调度器初始化完成 [in D:\work\code\python\KaMiXiTong\master\app\utils\scheduler.py:75] 2025-12-12 12:14:16,269 INFO: ʱʼ [in D:\work\code\python\KaMiXiTong\master\app\utils\scheduler.py:75] 2025-12-12 12:14:16,270 INFO: 已添加以下定时任务: [in D:\work\code\python\KaMiXiTong\master\app\utils\scheduler.py:76] 2025-12-12 12:14:16,270 INFO: ¶ʱ: [in D:\work\code\python\KaMiXiTong\master\app\utils\scheduler.py:76] 2025-12-12 12:14:16,270 INFO: 1. 每小时更新过期卡密状态 [in D:\work\code\python\KaMiXiTong\master\app\utils\scheduler.py:77] 2025-12-12 12:14:16,270 INFO: 1. ÿСʱ¹ڿ״̬ [in D:\work\code\python\KaMiXiTong\master\app\utils\scheduler.py:77] 2025-12-12 12:14:16,270 INFO: 2. 每天凌晨2点卡密健康检查 [in D:\work\code\python\KaMiXiTong\master\app\utils\scheduler.py:78] 2025-12-12 12:14:16,272 INFO: 3. 每周日凌晨3点清理日志 [in D:\work\code\python\KaMiXiTong\master\app\utils\scheduler.py:79] 2025-12-12 12:14:16,276 INFO: 定时任务调度器已启动 [in D:\work\code\python\KaMiXiTong\master\app\utils\scheduler.py:96] 2025-12-12 12:14:16,277 INFO: 后台定时任务调度器已启动 [in D:\work\code\python\KaMiXiTong\master\app\__init__.py:181] 2025-12-12 12:15:43,202 INFO: 收到登录请求 - IP: 192.168.1.13, User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/143.0.0.0 Safari/537.36 Edg/143.0.0.0 [in D:\work\code\python\KaMiXiTong\master\app\web\__init__.py:20] 2025-12-12 12:15:43,210 INFO: 登录尝试 - 用户名: admin, 来源IP: 192.168.1.13 [in D:\work\code\python\KaMiXiTong\master\app\web\__init__.py:49] 2025-12-12 12:15:43,614 INFO: 登录成功 - 用户名: admin, IP: 192.168.1.13 [in D:\work\code\python\KaMiXiTong\master\app\web\__init__.py:79] 2025-12-12 12:15:43,918 INFO: License search params - page: 1, per_page: 5, product_id: None, status: 1, type: None, keyword: [in D:\work\code\python\KaMiXiTong\master\app\api\license.py:30] 2025-12-12 12:15:43,979 INFO: License search results - total: 0, pages: 0 [in D:\work\code\python\KaMiXiTong\master\app\api\license.py:76] 2025-12-12 12:15:47,301 INFO: License search params - page: 1, per_page: 10, product_id: None, status: None, type: None, keyword: [in D:\work\code\python\KaMiXiTong\master\app\api\license.py:30] 2025-12-12 12:15:47,320 INFO: License search results - total: 110, pages: 11 [in D:\work\code\python\KaMiXiTong\master\app\api\license.py:76] 2025-12-12 12:15:56,663 INFO: License search params - page: 1, per_page: 5, product_id: None, status: 1, type: None, keyword: [in D:\work\code\python\KaMiXiTong\master\app\api\license.py:30] 2025-12-12 12:15:56,693 INFO: License search results - total: 0, pages: 0 [in D:\work\code\python\KaMiXiTong\master\app\api\license.py:76] 2025-12-12 12:15:58,224 INFO: License search params - page: 1, per_page: 5, product_id: None, status: 1, type: None, keyword: [in D:\work\code\python\KaMiXiTong\master\app\api\license.py:30] 2025-12-12 12:15:58,275 INFO: License search results - total: 0, pages: 0 [in D:\work\code\python\KaMiXiTong\master\app\api\license.py:76] 2025-12-12 12:15:59,547 INFO: License search params - page: 1, per_page: 5, product_id: None, status: 1, type: None, keyword: [in D:\work\code\python\KaMiXiTong\master\app\api\license.py:30] 2025-12-12 12:15:59,601 INFO: License search results - total: 0, pages: 0 [in D:\work\code\python\KaMiXiTong\master\app\api\license.py:76] 2025-12-12 12:16:00,258 INFO: License search params - page: 1, per_page: 10, product_id: None, status: None, type: None, keyword: [in D:\work\code\python\KaMiXiTong\master\app\api\license.py:30] 2025-12-12 12:16:00,270 INFO: License search results - total: 110, pages: 11 [in D:\work\code\python\KaMiXiTong\master\app\api\license.py:76] 2025-12-12 12:16:01,065 INFO: License search params - page: 1, per_page: 5, product_id: None, status: 1, type: None, keyword: [in D:\work\code\python\KaMiXiTong\master\app\api\license.py:30] 2025-12-12 12:16:01,094 INFO: License search results - total: 0, pages: 0 [in D:\work\code\python\KaMiXiTong\master\app\api\license.py:76] 2025-12-12 12:17:01,049 INFO: License search params - page: 1, per_page: 5, product_id: None, status: 1, type: None, keyword: [in D:\work\code\python\KaMiXiTong\master\app\api\license.py:30] 2025-12-12 12:17:01,089 INFO: License search results - total: 0, pages: 0 [in D:\work\code\python\KaMiXiTong\master\app\api\license.py:76] 2025-12-12 12:18:01,055 INFO: License search params - page: 1, per_page: 5, product_id: None, status: 1, type: None, keyword: [in D:\work\code\python\KaMiXiTong\master\app\api\license.py:30] 2025-12-12 12:18:01,088 INFO: License search results - total: 0, pages: 0 [in D:\work\code\python\KaMiXiTong\master\app\api\license.py:76] 2025-12-12 12:19:01,058 INFO: License search params - page: 1, per_page: 5, product_id: None, status: 1, type: None, keyword: [in D:\work\code\python\KaMiXiTong\master\app\api\license.py:30] 2025-12-12 12:19:01,102 INFO: License search results - total: 0, pages: 0 [in D:\work\code\python\KaMiXiTong\master\app\api\license.py:76] 2025-12-12 12:20:01,060 INFO: License search params - page: 1, per_page: 5, product_id: None, status: 1, type: None, keyword: [in D:\work\code\python\KaMiXiTong\master\app\api\license.py:30] 2025-12-12 12:20:01,101 INFO: License search results - total: 0, pages: 0 [in D:\work\code\python\KaMiXiTong\master\app\api\license.py:76] 2025-12-12 12:20:27,986 INFO: License search params - page: 1, per_page: 10, product_id: None, status: None, type: None, keyword: [in D:\work\code\python\KaMiXiTong\master\app\api\license.py:30] 2025-12-12 12:20:27,996 INFO: License search results - total: 110, pages: 11 [in D:\work\code\python\KaMiXiTong\master\app\api\license.py:76] 2025-12-12 12:20:29,960 INFO: License search params - page: 1, per_page: 10, product_id: None, status: None, type: None, keyword: [in D:\work\code\python\KaMiXiTong\master\app\api\license.py:30] 2025-12-12 12:20:29,974 INFO: License search results - total: 110, pages: 11 [in D:\work\code\python\KaMiXiTong\master\app\api\license.py:76] 2025-12-12 13:51:09,010 INFO: License search params - page: 1, per_page: 5, product_id: None, status: 1, type: None, keyword: [in D:\work\code\python\KaMiXiTong\master\app\api\license.py:30] 2025-12-12 13:51:09,049 INFO: License search results - total: 0, pages: 0 [in D:\work\code\python\KaMiXiTong\master\app\api\license.py:76] 2025-12-12 13:51:10,510 INFO: License search params - page: 1, per_page: 5, product_id: None, status: 1, type: None, keyword: [in D:\work\code\python\KaMiXiTong\master\app\api\license.py:30] 2025-12-12 13:51:10,537 INFO: License search results - total: 0, pages: 0 [in D:\work\code\python\KaMiXiTong\master\app\api\license.py:76] 2025-12-12 13:52:10,513 INFO: License search params - page: 1, per_page: 5, product_id: None, status: 1, type: None, keyword: [in D:\work\code\python\KaMiXiTong\master\app\api\license.py:30] 2025-12-12 13:52:10,548 INFO: License search results - total: 0, pages: 0 [in D:\work\code\python\KaMiXiTong\master\app\api\license.py:76] 2025-12-12 13:53:10,519 INFO: License search params - page: 1, per_page: 5, product_id: None, status: 1, type: None, keyword: [in D:\work\code\python\KaMiXiTong\master\app\api\license.py:30] 2025-12-12 13:53:10,566 INFO: License search results - total: 0, pages: 0 [in D:\work\code\python\KaMiXiTong\master\app\api\license.py:76] 2025-12-12 13:54:10,506 INFO: License search params - page: 1, per_page: 5, product_id: None, status: 1, type: None, keyword: [in D:\work\code\python\KaMiXiTong\master\app\api\license.py:30] 2025-12-12 13:54:10,551 INFO: License search results - total: 0, pages: 0 [in D:\work\code\python\KaMiXiTong\master\app\api\license.py:76] 2025-12-12 13:55:10,545 INFO: License search params - page: 1, per_page: 5, product_id: None, status: 1, type: None, keyword: [in D:\work\code\python\KaMiXiTong\master\app\api\license.py:30] 2025-12-12 13:55:10,598 INFO: License search results - total: 0, pages: 0 [in D:\work\code\python\KaMiXiTong\master\app\api\license.py:76] 2025-12-12 13:56:10,511 INFO: License search params - page: 1, per_page: 5, product_id: None, status: 1, type: None, keyword: [in D:\work\code\python\KaMiXiTong\master\app\api\license.py:30] 2025-12-12 13:56:10,546 INFO: License search results - total: 0, pages: 0 [in D:\work\code\python\KaMiXiTong\master\app\api\license.py:76] 2025-12-12 13:57:11,323 INFO: License search params - page: 1, per_page: 5, product_id: None, status: 1, type: None, keyword: [in D:\work\code\python\KaMiXiTong\master\app\api\license.py:30] 2025-12-12 13:57:11,354 INFO: License search results - total: 0, pages: 0 [in D:\work\code\python\KaMiXiTong\master\app\api\license.py:76] 2025-12-12 13:57:12,451 INFO: License search params - page: 1, per_page: 10, product_id: None, status: None, type: None, keyword: [in D:\work\code\python\KaMiXiTong\master\app\api\license.py:30] 2025-12-12 13:57:12,463 INFO: License search results - total: 110, pages: 11 [in D:\work\code\python\KaMiXiTong\master\app\api\license.py:76] 2025-12-12 13:57:15,439 INFO: License search params - page: 1, per_page: 5, product_id: None, status: 1, type: None, keyword: [in D:\work\code\python\KaMiXiTong\master\app\api\license.py:30] 2025-12-12 13:57:15,470 INFO: License search results - total: 0, pages: 0 [in D:\work\code\python\KaMiXiTong\master\app\api\license.py:76] 2025-12-12 13:57:16,938 INFO: License search params - page: 1, per_page: 5, product_id: None, status: 1, type: None, keyword: [in D:\work\code\python\KaMiXiTong\master\app\api\license.py:30] 2025-12-12 13:57:16,980 INFO: License search results - total: 0, pages: 0 [in D:\work\code\python\KaMiXiTong\master\app\api\license.py:76] 2025-12-12 13:57:19,539 INFO: License search params - page: 1, per_page: 5, product_id: None, status: 1, type: None, keyword: [in D:\work\code\python\KaMiXiTong\master\app\api\license.py:30] 2025-12-12 13:57:19,585 INFO: License search results - total: 0, pages: 0 [in D:\work\code\python\KaMiXiTong\master\app\api\license.py:76] 2025-12-12 16:35:19,746 INFO: KaMiXiTong startup [in D:\work\code\python\KaMiXiTong\master\config.py:171] 2025-12-12 16:35:20,164 INFO: 定时任务调度器初始化完成 [in D:\work\code\python\KaMiXiTong\master\app\utils\scheduler.py:75] 2025-12-12 16:35:20,164 INFO: 已添加以下定时任务: [in D:\work\code\python\KaMiXiTong\master\app\utils\scheduler.py:76] 2025-12-12 16:35:20,164 INFO: 1. 每小时更新过期卡密状态 [in D:\work\code\python\KaMiXiTong\master\app\utils\scheduler.py:77] 2025-12-12 16:35:20,164 INFO: 2. 每天凌晨2点卡密健康检查 [in D:\work\code\python\KaMiXiTong\master\app\utils\scheduler.py:78] 2025-12-12 16:35:20,164 INFO: 3. 每周日凌晨3点清理日志 [in D:\work\code\python\KaMiXiTong\master\app\utils\scheduler.py:79] 2025-12-12 16:35:20,168 INFO: 定时任务调度器已启动 [in D:\work\code\python\KaMiXiTong\master\app\utils\scheduler.py:96] 2025-12-12 16:35:20,168 INFO: 后台定时任务调度器已启动 [in D:\work\code\python\KaMiXiTong\master\app\__init__.py:164] 2025-12-12 16:35:34,846 INFO: License search params - page: 1, per_page: 10, product_id: None, status: None, type: None, keyword: [in D:\work\code\python\KaMiXiTong\master\app\api\license.py:30] 2025-12-12 16:35:34,870 INFO: License search results - total: 110, pages: 11 [in D:\work\code\python\KaMiXiTong\master\app\api\license.py:76] 2025-12-12 16:35:36,853 INFO: License search params - page: 1, per_page: 5, product_id: None, status: 1, type: None, keyword: [in D:\work\code\python\KaMiXiTong\master\app\api\license.py:30] 2025-12-12 16:35:36,874 INFO: License search results - total: 0, pages: 0 [in D:\work\code\python\KaMiXiTong\master\app\api\license.py:76] 2025-12-12 17:35:20,184 INFO: 开始检查过期卡密... [in D:\work\code\python\KaMiXiTong\master\app\utils\background_tasks.py:22] 2025-12-12 17:35:20,184 ERROR: 执行过期卡密检查时发生错误: Working outside of application context. This typically means that you attempted to use functionality that needed the current application. To solve this, set up an application context with app.app_context(). See the documentation for more information. [in D:\work\code\python\KaMiXiTong\master\app\utils\scheduler.py:131] Traceback (most recent call last): File "D:\work\code\python\KaMiXiTong\master\app\utils\scheduler.py", line 122, in check_and_update_expired_licenses result = update_expired_licenses() File "D:\work\code\python\KaMiXiTong\master\app\utils\background_tasks.py", line 63, in update_expired_licenses db.session.rollback() File "D:\IDEA\language\Python\lib\site-packages\sqlalchemy\orm\scoping.py", line 1793, in rollback return self._proxied.rollback() File "D:\IDEA\language\Python\lib\site-packages\sqlalchemy\orm\scoping.py", line 197, in _proxied return self.registry() File "D:\IDEA\language\Python\lib\site-packages\sqlalchemy\util\_collections.py", line 634, in __call__ key = self.scopefunc() File "D:\IDEA\language\Python\lib\site-packages\flask_sqlalchemy\session.py", line 102, in _app_ctx_id return id(app_ctx._get_current_object()) # type: ignore[attr-defined] File "D:\IDEA\language\Python\lib\site-packages\werkzeug\local.py", line 508, in _get_current_object raise RuntimeError(unbound_message) from None RuntimeError: Working outside of application context. This typically means that you attempted to use functionality that needed the current application. To solve this, set up an application context with app.app_context(). See the documentation for more information.