xuxueli / xxl-job

A distributed task scheduling framework.(分布式任务调度平台XXL-JOB)
http://www.xuxueli.com/xxl-job/
GNU General Public License v3.0
27.51k stars 10.89k forks source link

python任务日志乱码 #3208

Open jsRuner opened 1 year ago

jsRuner commented 1 year ago

Please answer some questions before submitting your issue. Thanks!

Which version of XXL-JOB do you using?

XXL-JOB 2.4.1-SNAPSHOT

执行器安装在window10 家庭版 下。

python版本 3.8.3

Expected behavior

中文日志正常查看

Actual behavior

在调度中心里查看日志是乱码的。 去执行器机器查看对应的日志是正常的

Steps to reproduce the behavior

创建

GLUE(Python) 任务

手动执行1次。

python代码 `#!/usr/bin/python

-- coding: UTF-8 --

import time import sys

print ("xxl-job: hello python")

print ("脚本位置:"+sys.argv[0]) print ("任务参数:"+ sys.argv[1]) print ("分片序号:"+ sys.argv[2]) if len(sys.argv) > 3: print ("分片总数:"+ sys.argv[3])

print ("Good bye!") exit(0) `

Other information

2023-06-05 14:42:31 [com.xxl.job.core.thread.JobThread#run]-[133]-[xxl-job, JobThread-3-1685947293094] ----------- xxl-job job execute start ----------- ----------- Param: 2023-06-05 14:42:31 [com.xxl.job.core.handler.impl.ScriptJobHandler#execute]-[80]-[xxl-job, JobThread-3-1685947293094] ----------- script file:data\applogs\xxl-job\jobhandler\gluesource\3_1685946747000.py ----------- xxl-job: hello python �ű�λ�ã�data\applogs\xxl-job\jobhandler\gluesource\3_1685946747000.py ���������0 ��Ƭ��ţ�1 Good bye! 2023-06-05 14:42:31 [com.xxl.job.core.thread.JobThread#run]-[179]-[xxl-job, JobThread-3-1685947293094] ----------- xxl-job job execute end(finish) ----------- ----------- Result: handleCode=200, handleMsg = null 2023-06-05 14:42:31 [com.xxl.job.core.thread.TriggerCallbackThread#callbackLog]-[197]-[xxl-job, executor TriggerCallbackThread] ----------- xxl-job job callback finish.

jsRuner commented 1 year ago

同时测试了下 GLUE(PowerShell) GLUE(java) 均正常。目前就python日志异常。

jsRuner commented 1 year ago

解决了。 这个是window powershell 出现的问题。 默认的编码是 gbk(936) 需要改成 utf-8(65001)

修改的方法是 在powershell 里启动 执行器之前,先 执行

chcp 65001

调度中心获取的日志应该是实时获取的。而非读取日志文件里。因此调度中心的日志乱码,而执行器的日志不乱码。

jsRuner commented 1 year ago

非常奇怪。昨天好好的。中间拷贝了1次jar到另外一个目录,然后继续运行时,又出现乱码。

之前的不一样, 代码中写的中文,能正常不乱码。传递的参数如果中文则乱码

`2023-06-06 15:02:48 [com.xxl.job.core.thread.JobThread#run]-[133]-[xxl-job, JobThread-4-1686034964985] ----------- xxl-job job execute start ----------- ----------- Param:参数1 参数2 2023-06-06 15:02:48 [com.xxl.job.core.handler.impl.ScriptJobHandler#execute]-[80]-[xxl-job, JobThread-4-1686034964985] ----------- script file:data\applogs\xxl-job\jobhandler\gluesource\4_1685946979000.ps1 ----------- xxl-job: hello powershell 脚本位置: D:\xxl-job-local\data\applogs\xxl-job\jobhandler\gluesource\4_1685946979000.ps1 任务参数: ����1 ����2 分片序号: 0 分片总数: 1 Good bye! 2023-06-06 15:02:48 [com.xxl.job.core.thread.JobThread#run]-[179]-[xxl-job, JobThread-4-1686034964985] ----------- xxl-job job execute end(finish) ----------- ----------- Result: handleCode=200, handleMsg = null 2023-06-06 15:02:48 [com.xxl.job.core.thread.TriggerCallbackThread#callbackLog]-[197]-[xxl-job, executor TriggerCallbackThread] ----------- xxl-job job callback finish.

[Load Log Finish]`

jsRuner commented 1 year ago

python 则 整个乱码。 代码中的中文,和传递的参数都是乱码

`2023-06-06 15:08:41 [com.xxl.job.core.thread.JobThread#run]-[133]-[xxl-job, JobThread-5-1686035282152] ----------- xxl-job job execute start ----------- ----------- Param:p1 p2 p3 p4 参数5 2023-06-06 15:08:41 [com.xxl.job.core.handler.impl.ScriptJobHandler#execute]-[80]-[xxl-job, JobThread-5-1686035282152] ----------- script file:data\applogs\xxl-job\jobhandler\gluesource\5_1686032627000.py ----------- xxl-job: hello python �ļ� path:data\applogs\xxl-job\jobhandler\gluesource\5_1686032627000.py ���� params:p1 p2 p3 p4 ����5 ���� id:0 ���� count:1 Good bye! 2023-06-06 15:08:41 [com.xxl.job.core.thread.JobThread#run]-[179]-[xxl-job, JobThread-5-1686035282152] ----------- xxl-job job execute end(finish) ----------- ----------- Result: handleCode=200, handleMsg = null 2023-06-06 15:08:41 [com.xxl.job.core.thread.TriggerCallbackThread#callbackLog]-[197]-[xxl-job, executor TriggerCallbackThread] ----------- xxl-job job callback finish.

[Load Log Finish]`

执行器上的日志文件,如果是Python 没乱码。如果是powershell 则乱码

wang-xiaowu commented 9 months ago

同样问题,powershell执行python代码遇到了中文乱码的现象

hailianghe commented 3 months ago

同样问题,powershell执行python代码遇到了中文乱码的现象

hailianghe commented 3 months ago

同样问题,powershell执行python代码遇到了中文乱码的现象

你解决了吗?

hailianghe commented 3 months ago

https://blog.csdn.net/qq_39494169/article/details/122561317 按照这个已经把powershell默认编码改成UTF-8了, 重启了执行器, 然后执行xxljob, 日志里面python打印的中文还是乱码, 日志文件里面是正常的. 服务器是windows2012

hailianghe commented 3 months ago

image