mirror of
https://github.com/DarkflameUniverse/NexusDashboard.git
synced 2024-11-22 13:37:21 +00:00
Fix log viewing
This commit is contained in:
parent
506d4ac090
commit
f0cbcee100
31
app/main.py
31
app/main.py
@ -1,4 +1,4 @@
|
|||||||
from flask import render_template, Blueprint, redirect, request, send_from_directory, make_response, send_file
|
from flask import render_template, Blueprint, redirect, request, send_from_directory, make_response, send_file, current_app
|
||||||
from flask_user import login_required, current_user
|
from flask_user import login_required, current_user
|
||||||
import json, glob, os
|
import json, glob, os
|
||||||
from wand import image
|
from wand import image
|
||||||
@ -17,7 +17,6 @@ char_info_schema = CharacterInfoSchema()
|
|||||||
def index():
|
def index():
|
||||||
"""Home/Index Page"""
|
"""Home/Index Page"""
|
||||||
if current_user.is_authenticated:
|
if current_user.is_authenticated:
|
||||||
|
|
||||||
account_data = Account.query.filter(Account.id == current_user.id).first()
|
account_data = Account.query.filter(Account.id == current_user.id).first()
|
||||||
|
|
||||||
return render_template(
|
return render_template(
|
||||||
@ -46,32 +45,6 @@ def favicon():
|
|||||||
@gm_level(9)
|
@gm_level(9)
|
||||||
def logs():
|
def logs():
|
||||||
with open('nexus_dashboard.log', 'r') as file:
|
with open('nexus_dashboard.log', 'r') as file:
|
||||||
logs = tail(file, 100)
|
logs = '</br>'.join(file.read().split('\n')[-100:])
|
||||||
return render_template('main/logs.html.j2', logs=logs)
|
return render_template('main/logs.html.j2', logs=logs)
|
||||||
|
|
||||||
def tail( f, lines=20 ):
|
|
||||||
total_lines_wanted = lines
|
|
||||||
|
|
||||||
BLOCK_SIZE = 1024
|
|
||||||
f.seek(0, 2)
|
|
||||||
block_end_byte = f.tell()
|
|
||||||
lines_to_go = total_lines_wanted
|
|
||||||
block_number = -1
|
|
||||||
blocks = [] # blocks of size BLOCK_SIZE, in reverse order starting
|
|
||||||
# from the end of the file
|
|
||||||
while lines_to_go > 0 and block_end_byte > 0:
|
|
||||||
if (block_end_byte - BLOCK_SIZE > 0):
|
|
||||||
# read the last block we haven't yet read
|
|
||||||
f.seek(block_number*BLOCK_SIZE, 2)
|
|
||||||
blocks.append(f.read(BLOCK_SIZE))
|
|
||||||
else:
|
|
||||||
# file too small, start from begining
|
|
||||||
f.seek(0,0)
|
|
||||||
# only read what was not read
|
|
||||||
blocks.append(f.read(block_end_byte))
|
|
||||||
lines_found = blocks[-1].count('\n')
|
|
||||||
lines_to_go -= lines_found
|
|
||||||
block_end_byte -= BLOCK_SIZE
|
|
||||||
block_number -= 1
|
|
||||||
all_read_text = ''.join(reversed(blocks))
|
|
||||||
return '</br>'.join(all_read_text.splitlines()[-total_lines_wanted:])
|
return '</br>'.join(all_read_text.splitlines()[-total_lines_wanted:])
|
||||||
|
Loading…
Reference in New Issue
Block a user