예제 #1
0
        void IDumpabled.Dump(string name, ObjectDumper dumper)
        {
            dumper.DumpText(name, "{");
            if (dumper.Enter())
            {
                dumper.DumpText("Function", FunctionToString());

                if (Field.Flags.HasFlag(ConditionFlags.UseGlobal))
                {
                    dumper.DumpObject("Operand", Provider.CreateReferenceProxy <GlobProxy>(Field.GlobalVariableOperand));
                }
                else
                {
                    dumper.DumpObject("Operand", Field.FloatOperand);
                }

                if (Field.FunctionTarget == FunctionTarget.Reference && Field.FunctionTargetReference == PlayerRefFormId)
                {
                    dumper.DumpText("RunOn", "Player");
                }
                else
                {
                    dumper.DumpObject("RunOn", Field.FunctionTarget);
                    if (Field.FunctionTarget == FunctionTarget.Reference || Field.FunctionTarget == FunctionTarget.LinkedReference)
                    {
                        dumper.DumpObject("RunOnReference", Provider.CreateReferenceProxy <FormProxy>(Field.FunctionTargetReference));
                    }
                }

                dumper.DumpObject("Flags", Field.Flags);
                dumper.Leave();
            }
            dumper.DumpText("}");
        }
예제 #2
0
 public static void Format(TextBuilder textBuilder, EventProperties properties)
 {
     if (properties.ContainsKey(String.Empty))
     {
         textBuilder.Append("EventData");
     }
     ObjectDumper.DumpObject(
         properties.OrderBy(pair => pair.Key),
         textBuilder);
 }
예제 #3
0
        private string SavePropToFile(string messageType, object prop)
        {
            var logFolder = Path.Combine(CoreApplication.Instance.LogFileFolder, messageType);

            FileUtils.EnsureDirExists(logFolder);
            var file         = FileUtils.GetUniqueName(logFolder, messageType, "log", 6);
            var fullFilePath = Path.Combine(logFolder, file);

            File.WriteAllText(fullFilePath, ObjectDumper.DumpObject(prop, dumperSetting));
            return(Path.GetFileNameWithoutExtension(fullFilePath));
        }
예제 #4
0
        public string Format(LoggerEvent loggerEvent)
        {
            var args = new object[_messageNames.Count];

            for (int i = 0; i < _messageNames.Count; ++i)
            {
                args[i] = string.Empty;
                if (loggerEvent.Properties.ContainsKey(_messageNames[i]))
                {
                    object arg = loggerEvent[_messageNames[i]];
                    if (_singleFileProps.Contains(_messageNames[i]))
                    {
                        arg = SavePropToFile(_messageNames[i], arg);
                    }
                    if (!(arg is string) && (arg is IEnumerable))
                    {
                        args[i] = ObjectDumper.DumpObject(arg, dumperSetting);
                    }
                    else
                    {
                        args[i] = arg;
                    }
                }
                else
                {
                    switch (_messageNames[i])
                    {
                    case LoggerEvent.EVENTTYPE_PROPERTY:
                        args[i] = loggerEvent.EventType;
                        break;
                    }
                }
            }
            try
            {
                return(string.Format(_format, args));
            }
            catch (Exception ex)
            {
                _format = StringFormatParser.Parse(DEFAULT_FORMAT, out _messageNames);
                CoreApplication.Instance.Logger.LogWarning(Message.Common_SingleLineFormatterFormatError, ex, _userFormat);
                return(Format(loggerEvent));
            }
        }
예제 #5
0
        public void Dump(object value, string name)
        {
            var dumper = new ObjectDumper("[DUMP]");

            dumper.DumpObject(name, value);
        }
예제 #6
0
        public void Dump(object value)
        {
            var dumper = new ObjectDumper("[DUMP]");

            dumper.DumpObject(value);
        }