Пример #1
0
    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));
        }
    }
Пример #2
0
    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);
        }
    }