@page "/logs" @attribute [Authorize] @rendermode InteractiveServer @inject LogService LogService @inject IJSRuntime JSRuntime Logs

System-Logs

Log-Ausgabe @_logContent.Split('\n').Length Zeilen
@_logContent
@code { private List _logFiles = new(); private string _selectedFileName = ""; private int _maxLines = 1000; private string _logContent = "Keine Log-Datei ausgewählt."; protected override void OnInitialized() { LoadLogFiles(); } private void LoadLogFiles() { _logFiles = LogService.GetLogFiles(); if (_logFiles.Any() && string.IsNullOrEmpty(_selectedFileName)) { _selectedFileName = Path.GetFileName(_logFiles.First()); LoadSelectedLog(); } } private void LoadSelectedLog() { if (string.IsNullOrEmpty(_selectedFileName)) { _logContent = "Keine Log-Datei ausgewählt."; return; } _logContent = LogService.ReadLogFile(_selectedFileName, _maxLines); } private async Task DownloadLog() { if (string.IsNullOrEmpty(_selectedFileName)) return; var content = LogService.ReadLogFile(_selectedFileName, int.MaxValue); var bytes = System.Text.Encoding.UTF8.GetBytes(content); var base64 = Convert.ToBase64String(bytes); await JSRuntime.InvokeVoidAsync("downloadFileFromBase64", _selectedFileName, base64, "text/plain"); } }