def page_logview(): """ Display the last (n) lines from a log file """ if not flaskutils.user_has_permission('view_logs'): return redirect(url_for('general_routes.home')) form_log_view = flaskforms.LogView() log_output = None lines = 30 logfile = '' if request.method == 'POST': if form_log_view.lines.data: lines = form_log_view.lines.data if form_log_view.loglogin.data: logfile = LOGIN_LOG_FILE elif form_log_view.loghttp.data: logfile = HTTP_LOG_FILE elif form_log_view.logdaemon.data: logfile = DAEMON_LOG_FILE elif form_log_view.logkeepup.data: logfile = KEEPUP_LOG_FILE elif form_log_view.logbackup.data: logfile = BACKUP_LOG_FILE elif form_log_view.logrestore.data: logfile = RESTORE_LOG_FILE elif form_log_view.logupgrade.data: logfile = UPGRADE_LOG_FILE # Get contents from file if os.path.isfile(logfile): command = 'tail -n {lines} {log}'.format(lines=lines, log=logfile) log = subprocess.Popen(command, stdout=subprocess.PIPE, shell=True) (log_output, _) = log.communicate() log.wait() log_output = unicode(log_output, 'utf-8') else: log_output = 404 return render_template('tools/logview.html', form_log_view=form_log_view, lines=lines, logfile=logfile, log_output=log_output)
def page_logview(): """ Display the last (n) lines from a log file """ if not logged_in(): return redirect(url_for('general_routes.home')) form_log_view = flaskforms.LogView() log_output = None lines = 30 logfile = '' if request.method == 'POST': if session['user_group'] == 'guest': flaskutils.deny_guest_user() return redirect('/logview') if form_log_view.lines.data: lines = form_log_view.lines.data if form_log_view.loglogin.data: logfile = LOGIN_LOG_FILE elif form_log_view.loghttp.data: logfile = HTTP_LOG_FILE elif form_log_view.logdaemon.data: logfile = DAEMON_LOG_FILE elif form_log_view.logupgrade.data: logfile = UPGRADE_LOG_FILE elif form_log_view.logrestore.data: logfile = RESTORE_LOG_FILE # Get contents from file if os.path.isfile(logfile): log = subprocess.Popen('tail -n ' + str(lines) + ' ' + logfile, stdout=subprocess.PIPE, shell=True) (log_output, _) = log.communicate() log.wait() else: log_output = 404 return render_template('tools/logview.html', form_log_view=form_log_view, lines=lines, logfile=logfile, log_output=log_output)