mirror of
https://github.com/SpiceBot/SpiceBot.git
synced 2026-11-12 14:39:54 -05:00
update logging
This commit is contained in:
parent
f72f7671df
commit
cc0bc2676b
@ -5,14 +5,14 @@ import sopel.module
|
|||||||
|
|
||||||
from sopel_modules.SpiceBot_Events.System import botevents
|
from sopel_modules.SpiceBot_Events.System import botevents
|
||||||
|
|
||||||
from .Logs import botlogs, stdio_logs_fetch
|
from .Logs import botlogs
|
||||||
|
|
||||||
|
|
||||||
@sopel.module.event(botevents.BOT_STARTUPMONOLOGUE)
|
@sopel.module.event(botevents.BOT_STARTUPMONOLOGUE)
|
||||||
@sopel.module.rule('.*')
|
@sopel.module.rule('.*')
|
||||||
def bot_startup_monologue_start(bot, trigger):
|
def bot_startup_monologue_start(bot, trigger):
|
||||||
|
|
||||||
debuglines = stdio_logs_fetch(bot)
|
debuglines = botlogs.stdio_logs_fetch(bot)
|
||||||
|
|
||||||
searchphrasefound = []
|
searchphrasefound = []
|
||||||
for line in debuglines:
|
for line in debuglines:
|
||||||
|
|||||||
@ -122,68 +122,3 @@ def join_log_channel(bot, trigger):
|
|||||||
else:
|
else:
|
||||||
botlogs.sopel_config["logging_channel"] = False
|
botlogs.sopel_config["logging_channel"] = False
|
||||||
botlogs.SpiceBot_Logs["queue"] = []
|
botlogs.SpiceBot_Logs["queue"] = []
|
||||||
|
|
||||||
|
|
||||||
def stdio_logs_fetch(bot):
|
|
||||||
|
|
||||||
stdio_ignore = []
|
|
||||||
for logtype in bot.memory['SpiceBot_Logs']["logs"].keys():
|
|
||||||
stdio_ignore.append("[" + logtype + "]")
|
|
||||||
|
|
||||||
logfile = os.path.os.path.join(bot.config.core.logdir, 'stdio.log')
|
|
||||||
|
|
||||||
try:
|
|
||||||
log_file_lines = []
|
|
||||||
log_file = open(logfile, 'r')
|
|
||||||
lines = log_file.readlines()
|
|
||||||
for line in lines:
|
|
||||||
log_file_lines.append(line)
|
|
||||||
log_file.close()
|
|
||||||
|
|
||||||
currentline, linenumindex = 0, []
|
|
||||||
for line in log_file_lines:
|
|
||||||
if line.startswith("Welcome to Sopel. Loading modules..."):
|
|
||||||
linenumindex.append(currentline)
|
|
||||||
currentline += 1
|
|
||||||
last_start = max(linenumindex)
|
|
||||||
filelines = log_file_lines[last_start:]
|
|
||||||
except Exception as e:
|
|
||||||
debuglines = e
|
|
||||||
filelines = []
|
|
||||||
|
|
||||||
debuglines = []
|
|
||||||
loadedmodules = []
|
|
||||||
for line in filelines:
|
|
||||||
if line.startswith("Loaded:"):
|
|
||||||
loadedmodules.append(str(line).split("Loaded:")[-1])
|
|
||||||
else:
|
|
||||||
if not line.startswith(tuple(stdio_ignore)) and not line.isspace():
|
|
||||||
debuglines.append(str(line))
|
|
||||||
loadedmodules = "Loaded: " + spicemanip.main(loadedmodules, 'andlist')
|
|
||||||
debuglines.insert(1, loadedmodules)
|
|
||||||
|
|
||||||
return debuglines
|
|
||||||
|
|
||||||
|
|
||||||
def systemd_logs_fetch(bot):
|
|
||||||
servicepid = get_running_pid(bot)
|
|
||||||
debuglines = []
|
|
||||||
for line in os.popen(str("sudo journalctl _PID=" + str(servicepid))).read().split('\n'):
|
|
||||||
line = str(line).split(str(os.uname()[1] + " "))[-1]
|
|
||||||
lineparts = str(line).split(": ")
|
|
||||||
del lineparts[0]
|
|
||||||
line = spicemanip.main(lineparts, 0)
|
|
||||||
if not line.isspace():
|
|
||||||
debuglines.append(str(line))
|
|
||||||
return debuglines
|
|
||||||
|
|
||||||
|
|
||||||
def get_running_pid(bot):
|
|
||||||
try:
|
|
||||||
filename = "/run/sopel/" + str(bot.nick) + ".pid"
|
|
||||||
with open(filename, 'r') as pid_file:
|
|
||||||
pidnum = int(pid_file.read())
|
|
||||||
except Exception as e:
|
|
||||||
pidnum = e
|
|
||||||
pidnum = str(os.popen("systemctl show " + str(bot.nick) + " --property=MainPID").read()).split("=")[-1]
|
|
||||||
return pidnum
|
|
||||||
|
|||||||
@ -5,9 +5,9 @@ import sopel.module
|
|||||||
|
|
||||||
import spicemanip
|
import spicemanip
|
||||||
|
|
||||||
from sopel_modules.SpiceBot_SBTools import sopel_triggerargs, command_permissions_check, inlist, inlist_match, similar_list
|
from .Logs import botlogs
|
||||||
from sopel_modules.SpiceBot_Events.System import botevents
|
from sopel_modules.SpiceBot_Events.System import botevents
|
||||||
from .Logs import systemd_logs_fetch, stdio_logs_fetch
|
from sopel_modules.SpiceBot_SBTools import sopel_triggerargs, command_permissions_check, inlist, inlist_match, similar_list
|
||||||
|
|
||||||
|
|
||||||
@botevents.check_ready([botevents.BOT_LOGS])
|
@botevents.check_ready([botevents.BOT_LOGS])
|
||||||
@ -22,11 +22,11 @@ def bot_command_logs(bot, trigger):
|
|||||||
|
|
||||||
logtype = spicemanip.main(triggerargs, 1) or None
|
logtype = spicemanip.main(triggerargs, 1) or None
|
||||||
if not logtype:
|
if not logtype:
|
||||||
bot.osd("Current valid log(s) include: " + spicemanip.main(bot.memory['SpiceBot_Logs']["logs"].keys(), 'andlist'), trigger.sender, 'action')
|
bot.osd("Current valid log(s) include: " + spicemanip.main(botlogs.SpiceBot_Logs["list"].keys(), 'andlist'), trigger.sender, 'action')
|
||||||
return
|
return
|
||||||
|
|
||||||
if not inlist(bot, logtype, bot.memory['SpiceBot_Logs']["logs"].keys()):
|
if not inlist(bot, logtype, botlogs.SpiceBot_Logs["list"].keys()):
|
||||||
closestmatches = similar_list(bot, logtype, bot.memory['SpiceBot_Logs']["logs"].keys(), 10, 'reverse')
|
closestmatches = similar_list(bot, logtype, botlogs.SpiceBot_Logs["list"].keys(), 10, 'reverse')
|
||||||
if not len(closestmatches):
|
if not len(closestmatches):
|
||||||
bot.notice("No valid logs match " + str(logtype) + ".", trigger.nick)
|
bot.notice("No valid logs match " + str(logtype) + ".", trigger.nick)
|
||||||
else:
|
else:
|
||||||
@ -34,14 +34,14 @@ def bot_command_logs(bot, trigger):
|
|||||||
|
|
||||||
return
|
return
|
||||||
|
|
||||||
logtype = inlist_match(bot, logtype, bot.memory['SpiceBot_Logs']["logs"].keys())
|
logtype = inlist_match(bot, logtype, botlogs.SpiceBot_Logs["list"].keys())
|
||||||
|
|
||||||
if logtype == "Sopel_systemd":
|
if logtype == "Sopel_systemd":
|
||||||
logindex = systemd_logs_fetch(bot)
|
logindex = botlogs.systemd_logs_fetch(bot)
|
||||||
elif logtype == "Sopel_stdio":
|
elif logtype == "Sopel_stdio":
|
||||||
logindex = stdio_logs_fetch(bot)
|
logindex = botlogs.stdio_logs_fetch(bot)
|
||||||
else:
|
else:
|
||||||
logindex = bot.memory['SpiceBot_Logs']["logs"][logtype]
|
logindex = botlogs.SpiceBot_Logs["list"][logtype]
|
||||||
|
|
||||||
if not len(logindex):
|
if not len(logindex):
|
||||||
bot.osd("No logs found for " + str(logtype) + ".")
|
bot.osd("No logs found for " + str(logtype) + ".")
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user