{ "Serilog": { "Using": [ "Serilog.Sinks.Console", "Serilog.Sinks.File" ], "MinimumLevel": { "Default": "Information", "Override": { "Microsoft": "Warning", "System": "Warning" } }, "WriteTo": [ { "Name": "Console", "Args": { "outputTemplate": "[{Timestamp:yyyy-MM-dd HH:mm:ss.fff}] [{Level:u3}] {Message:lj}{NewLine}{Exception}" } }, { "Name": "File", "Args": { "path": "Logs/filemonitor-.log", "rollingInterval": "Day", "outputTemplate": "[{Timestamp:yyyy-MM-dd HH:mm:ss.fff}] [{Level:u3}] {Message:lj}{NewLine}{Exception}", "retainedFileCountLimit": 31 } } ], "Enrich": [ "FromLogContext" ] }, "FileMonitorConfig": { "General": { "EnableFileFiltering": true, "MemoryMonitorIntervalMinutes": 1, "DefaultMonitorPath": "D:\\MonitorFiles" }, "FileFilters": { "AllowedExtensions": [ ".dll" ], "ExcludedDirectories": [ "bin", "obj", "node_modules" ], "IncludeSubdirectories": true }, "Performance": { "MemoryCleanupThreshold": 5000, "ChannelCapacity": 1000, "EventDebounceTimeSeconds": 3, "MaxDictionarySize": 10000, "CleanupIntervalSeconds": 5, "ProcessingDelayMs": 5 }, "Robustness": { "EnableAutoRecovery": true, "WatcherHealthCheckIntervalSeconds": 30, "WatcherTimeoutSeconds": 60, "MaxRestartAttempts": 3, "RestartDelaySeconds": 5, "EnableFileLockDetection": true, "LockedFileStrategy": "Retry", "FileLockRetryCount": 3, "FileLockRetryDelayMs": 500 }, "EventStorage": { "EnableEventStorage": true, "StorageType": "SQLite", "StorageDirectory": "D:/EventLogs", "DatabasePath": "D:/EventLogs/events.db", "ConnectionString": "Data Source=D:/EventLogs/events.db;Foreign Keys=True", "CommandTimeout": 30, "LogFileNameFormat": "FileEvents_{0:yyyy-MM-dd}.json", "StorageIntervalSeconds": 60, "BatchSize": 100, "MaxEventRecords": 100000, "DataRetentionDays": 30, "MaxLogFiles": 30, "CompressLogFiles": true, "EnableEventReplay": true, "ReplayIntervalMs": 100, "ReplaySpeedFactor": 1.0 }, "NotifyFilters": [ "LastWrite", "FileName", "DirectoryName", "CreationTime" ], "Logging": { "LogLevel": "Information" } } }