我的问题是,我无法让我的机器人显示成员作者、日期和消息。以下是错误:
忽略异常在on_messageTraceback(最近的调用最后):文件"C:\Program Files(x86)\Python38-32\lib\site-包\discord\client.py",第270行,在_run_event等待coro(*args,**kwargs)类型错误:on_message()缺少1个必需的位置参数:'ctx'
我的代码:
@commands.Cog.listener()
async def on_message(self, message, ctx):
#await client.send_message(message.channel, discord.Message.author)
messagestr = ""
messagestr = ('{0.content}'.format(message))
file_open()
print(device_time()+" "+ctx.message.author+" "+"Message: "+messagestr)
out1 = ""
out1 = messagestr
f1 = open('logs.txt','a')
out1 = out1.replace('\n', '')
out1 = (device_time()+" "+out1+'\r')
f1.write(device_time()+" "+"Message: "+messagestr)
f1.close()
f1.close()
首先是关于信息不一致。py事件不接受ctx
,它只接受消息
,这是直接导致错误的原因。
然后你使用的是python的连接方法,这还不错,但是python的f字符串更好地格式化字符串,因为f字符串直接将变量类型转换为字符串(所以不需要使用str()函数)
另外,考虑使用PEP-8命名约定,这会使代码看起来更漂亮、更易于阅读。例如,您使用messagestr=“”
,对于python的解释器来说,这是可以的,不会抛出错误,但是对于人类来说,这非常难看,在python中您应该使用snake\u case,因此messagestr
将变成message\u str=None
下面是我应该做的:
@commands.Cog.listener()
async def on_message(self, message):
#await client.send_message(message.channel, str(message.author))
message_str = message.content
file_open()
print(f'{device_time()} {message.author} Message: {messagestr}')
out = message_str.replace('\n', '')
file = open('logs.txt','a')
out = f'{device_time()} {out} \r' #Note : message.created_at would be a useful function here to replace device_time()
file.write(f'{device_time()} Message: {message_str}')
file.close()
消息上的不接受
ctx
,因此将其从函数中删除,而不是ctx。消息作者
使用消息。作者
我在ReactJS中工作,我通过API从服务器获取数据。我做了一些搜索过滤,我想显示消息,如果没有记录可用?我是ReactJS的初学者,没有太多关于ReactJS的知识。 代码:
问题内容: 我正在使用logback / slf4j进行日志记录。我想解析我的日志文件以分析一些数据,所以我不想解析一个很大的大文件(主要由调试语句组成),而是要有两个记录器实例,每个实例都记录到一个单独的文件中。一种用于分析,另一种用于通用日志记录。有谁知道使用Logback或其他任何记录器是否可行? 问题答案: 很可能在logback中执行类似的操作。这是一个示例配置: 然后,您将设置两个单独
我正在编写一个Kafka Streams应用程序。它执行以下步骤“1)消耗输入数据2)在1小时窗口内根据新密钥消重记录3)重新选择密钥4)在1小时窗口内计数密钥5)发送到下游。 我是Kafka流的新手。我的理解是,为了将窗口保持为1小时,我将 也设置为1小时。这是正确的做法吗? 一旦我部署了我的应用程序与真实的流量,它似乎应用程序不断发送消息,而我认为它每小时只会发送一堆消息? 感谢任何帮助!!
问题内容: 我可以将所有消息定向到log.txt文件: 但是我也如何在控制台中获取日志消息? 问题答案: 使用 MultiWriter创建一个写入器,该写入器将其写入复制到所有提供的写入器中,类似于Unix tee(1)命令
,日志记录将进入一个文件; (路径)/service_name/service_name.log 我想用logback复制这种行为,但在logback.xml配置中获取“logger”名称时遇到了真正的困难。它可以在log encoder.pattern中看到,即“%d%-5level%logger{35}-%msg%n”。