@page "/logs"
@attribute [Authorize]
@rendermode InteractiveServer
@inject LogService LogService
@inject IJSRuntime JSRuntime
Logs
System-Logs
@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");
}
}