Aggiunti limiti configurabili per i log
- Introdotta una nuova sezione "Limiti Log" nell'interfaccia utente per configurare: - Numero massimo di righe di log per asta (default: 500). - Numero massimo di righe di log globale (default: 1000). - Aggiunte proprietà in `SettingsManager` per salvare/caricare i limiti. - Applicati i limiti al log globale e ai log delle aste: - Log globale: rimozione automatica dei paragrafi più vecchi. - Log per asta: ottimizzato `AddLog` con `RemoveRange` per migliorare le performance. - Documentazione dettagliata in `FEATURE_CONFIGURABLE_LOG_LIMITS.md` e `FEATURE_LOG_MAX_LINES.md`. - Migliorata la gestione della memoria, riducendo il rischio di rallentamenti o crash. - Test e checklist definiti per verificare il corretto funzionamento.
This commit is contained in:
@@ -11,6 +11,11 @@ namespace AutoBidder.Models
|
||||
/// </summary>
|
||||
public class AuctionInfo
|
||||
{
|
||||
/// <summary>
|
||||
/// Numero massimo di righe di log da mantenere per ogni asta
|
||||
/// </summary>
|
||||
private const int MAX_LOG_LINES = 500;
|
||||
|
||||
public string AuctionId { get; set; } = "";
|
||||
public string Name { get; set; } = ""; // Opzionale, può essere lasciato vuoto
|
||||
public string OriginalUrl { get; set; } = ""; // URL completo dell'asta (per referer)
|
||||
@@ -71,17 +76,21 @@ namespace AutoBidder.Models
|
||||
public bool IsAttackInProgress { get; set; } = false;
|
||||
|
||||
/// <summary>
|
||||
/// Aggiunge una voce al log dell'asta
|
||||
/// Aggiunge una voce al log dell'asta con limite automatico di righe
|
||||
/// </summary>
|
||||
public void AddLog(string message)
|
||||
/// <param name="message">Messaggio da aggiungere al log</param>
|
||||
/// <param name="maxLines">Numero massimo di righe da mantenere (default: 500)</param>
|
||||
public void AddLog(string message, int maxLines = 500)
|
||||
{
|
||||
var entry = $"{DateTime.Now:HH:mm:ss.fff} - {message}";
|
||||
AuctionLog.Add(entry);
|
||||
|
||||
// Mantieni solo ultimi 500 log
|
||||
if (AuctionLog.Count > 500)
|
||||
// Mantieni solo gli ultimi maxLines log
|
||||
if (AuctionLog.Count > maxLines)
|
||||
{
|
||||
AuctionLog.RemoveAt(0);
|
||||
// Rimuovi i log più vecchi per mantenere la dimensione sotto controllo
|
||||
int excessCount = AuctionLog.Count - maxLines;
|
||||
AuctionLog.RemoveRange(0, excessCount);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user