public static void DefaultSetDestinationsProc(LogServerReceivedData data, LogServerOptions options) { FileSystem fs = options.DestFileSystem; PathParser parser = fs.PathParser; string root = options.DestRootDirName; LogPriority priority = data.JsonData !.Priority._ParseEnum(LogPriority.None); LogJsonData d = data.JsonData; DateTime date; if (d.TimeStamp.HasValue == false) { date = Util.ZeroDateTimeValue; } else { date = d.TimeStamp.Value.LocalDateTime.Date; } if (d.Kind._IsSamei(LogKind.Default)) { if (priority >= LogPriority.Debug) { Add($"{d.AppName}/{d.MachineName}/Debug", d.AppName !, "Debug", date); } if (priority >= LogPriority.Info) { Add($"{d.AppName}/{d.MachineName}/Info", d.AppName !, "Info", date); } if (priority >= LogPriority.Error) { Add($"{d.AppName}/{d.MachineName}/Error", d.AppName !, "Error", date); } } else { Add($"{d.AppName}/{d.MachineName}/{d.Kind}", d.AppName !, d.Kind !, date); } void Add(string subDirName, string token0, string token1, DateTime date) { string yyyymmdd = Str.DateToStrShort(date); string tmp = parser.Combine(root, subDirName, $"{yyyymmdd}-{token0}-{token1}.log"); data.AddDestinationFileName(parser.NormalizeDirectorySeparator(tmp)); } }
async Task LogDataReceivedInternalAsync(string srcHostName, IReadOnlyList <Memory <byte> > dataList) { if (dataList.Count == 0) { return; } List <LogServerReceivedData> list = new List <LogServerReceivedData>(); foreach (Memory <byte> data in dataList) { try { string str = data._GetString_UTF8(); LogServerReceivedData d = new LogServerReceivedData() { BinaryData = data, JsonData = str._JsonToObject <LogJsonData>(), }; d.JsonData !.NormalizeReceivedLog(srcHostName); list.Add(d); } catch (Exception ex) { Con.WriteError($"LogDataReceivedInternalAsync: {ex.ToString()}"); } } if (list.Count >= 1) { await LogReceiveImplAsync(list); } }