使用来自 nuget 的最新 Google.Cloud.Logging.V2 包,1.0.0
我发送日志的功能:
private static void WriteLogEntry(string message, Google.Cloud.Logging.Type.LogSeverity severity)
{
string threadName = System.Threading.Thread.CurrentThread.Name;
if (string.IsNullOrEmpty(threadName))
{
threadName = System.Threading.Thread.CurrentThread.ManagedThreadId.ToString();
}
LogEntry logEntry = new LogEntry
{
LogName = logName.ToString(),
Severity = severity,
TextPayload = string.Format("[{0}]: {1}", threadName, message)
};
CloudLogClient.WriteLogEntriesAsync(LogResource, Monitor, EntryLabels, new[] { logEntry });
}
进行了压力测试,使用此功能从 40 个线程发送约 50 个日志/秒/线程。该测试大量泄漏内存,与禁用测试相比,运行大约 100MB/10 分钟。
通过 Google.Cloud.Logging.Log4Net 包时也会发生此问题。
任何有关如何进一步缩小范围的建议将不胜感激。是否有任何可用于云日志记录包的源代码可以检查以找到内存泄漏的来源?