Ejemplo n.º 1
0
        /// <summary>Logs the specified level.</summary>
        /// <param name="level">The logging level.</param>
        /// <param name="category">The category.</param>
        /// <param name="formatMessage">The format message.</param>
        /// <param name="args">The parameters used when format message.</param>
        public static void Log(TrinityLogLevel level, LogCategory category, string formatMessage, params object[] args)
        {
            if (string.IsNullOrEmpty(prefix))
                prefix = string.Format("[Trinity {0}]", Trinity.Instance.Version);

            if (category == LogCategory.UserInformation || level >= TrinityLogLevel.Error || (Trinity.Settings != null && Trinity.Settings.Advanced.LogCategories.HasFlag(category)))
            {
                string msg = string.Format(prefix + "{0} {1}", category != LogCategory.UserInformation ? "[" + category.ToString() + "]" : string.Empty, formatMessage);

                try
                {
                if (args.Length > 0)
                    msg = string.Format(msg, args);
                }
                catch
                {
                    msg = msg + " || " + args;
                }
                var key = new Tuple<LogCategory, TrinityLogLevel>(category, level);

                if (!LastLogMessages.ContainsKey(key))
                    LastLogMessages.Add(key, "");

                var allowDuplicates = Trinity.Settings != null && Trinity.Settings.Advanced != null && Trinity.Settings.Advanced.AllowDuplicateMessages;

                string lastMessage;
                if (LastLogMessages.TryGetValue(key, out lastMessage) && (allowDuplicates || lastMessage != msg))
                {
                    LastLogMessages[key] = msg;

                    switch (level)
                    {
                        case TrinityLogLevel.Error:
                            _Logger.Error(msg);
                            break;
                        case TrinityLogLevel.Info:
                            _Logger.Info(msg);
                            break;
                        case TrinityLogLevel.Verbose:
                            _Logger.Debug(msg);
                            break;
                        case TrinityLogLevel.Debug:
                            LogToTrinityDebug(msg);
                            break;
                    }
                }
            }
        }
Ejemplo n.º 2
0
        internal static void LogInvalidItems(TrinityLogLevel level = TrinityLogLevel.Debug)
        {
            var p = Logger.Prefix;

            Logger.Prefix = "";

            var dropItems    = Legendary.ToList().Where(i => !i.IsCrafted && i.Id == 0).OrderBy(i => i.TrinityItemType).ToList();
            var craftedItems = Legendary.ToList().Where(i => i.IsCrafted && i.Id == 0).OrderBy(i => i.TrinityItemType).ToList();

            Logger.Log("Dropped Items: {0}", dropItems.Count);
            foreach (var item in dropItems)
            {
                Logger.Log("{0} - {1} = 0", item.TrinityItemType, item.Name);
            }

            Logger.Log(" ");
            Logger.Log("Crafted Items: {0}", craftedItems.Count);
            foreach (var item in craftedItems)
            {
                Logger.Log("{0} - {1} = 0", item.TrinityItemType, item.Name);
            }

            Logger.Prefix = p;
        }
Ejemplo n.º 3
0
        /// <summary>Converts <see cref="TrinityLogLevel"/> to <see cref="LogLevel"/>.</summary>
        /// <param name="level">The trinity logging level.</param>
        /// <returns>DemonBuddy logging level.</returns>
        private static LogLevel ConvertToLogLevel(TrinityLogLevel level)
        {
            LogLevel logLevel = LogLevel.Debug;

            switch (level)
            {
            case TrinityLogLevel.Error:
                logLevel = LogLevel.Error;
                break;

            case TrinityLogLevel.Info:
                logLevel = LogLevel.Info;
                break;

            case TrinityLogLevel.Verbose:
                logLevel = LogLevel.Verbose;
                break;

            case TrinityLogLevel.Debug:
                logLevel = LogLevel.Debug;
                break;
            }
            return(logLevel);
        }
Ejemplo n.º 4
0
 /// <summary>Converts <see cref="TrinityLogLevel"/> to <see cref="LogLevel"/>.</summary>
 /// <param name="level">The trinity logging level.</param>
 /// <returns>DemonBuddy logging level.</returns>
 private static LogLevel ConvertToLogLevel(TrinityLogLevel level)
 {
     LogLevel logLevel = LogLevel.Debug;
     switch (level)
     {
         case TrinityLogLevel.Error:
             logLevel = LogLevel.Error;
             break;
         case TrinityLogLevel.Info:
             logLevel = LogLevel.Info;
             break;
         case TrinityLogLevel.Verbose:
             logLevel = LogLevel.Verbose;
             break;
         case TrinityLogLevel.Debug:
             logLevel = LogLevel.Debug;
             break;
     }
     return logLevel;
 }
Ejemplo n.º 5
0
        internal static void LogInvalidItems(TrinityLogLevel level = TrinityLogLevel.Debug)
        {
            var p = Logger.Prefix;
            Logger.Prefix = "";

            var dropItems = Legendary.ToList().Where(i => !i.IsCrafted && i.Id==0).OrderBy(i => i.TrinityItemType).ToList();
            var craftedItems = Legendary.ToList().Where(i => i.IsCrafted && i.Id==0).OrderBy(i => i.TrinityItemType).ToList();

            Logger.Log("Dropped Items: {0}", dropItems.Count);
            foreach (var item in dropItems)
            {
                    Logger.Log("{0} - {1} = 0", item.TrinityItemType, item.Name);                    
            }

            Logger.Log(" ");
            Logger.Log("Crafted Items: {0}", craftedItems.Count);
            foreach (var item in craftedItems)
            {
                    Logger.Log("{0} - {1} = 0", item.TrinityItemType, item.Name);
            }

            Logger.Prefix = p;
        }
Ejemplo n.º 6
0
        internal static void DumpReferenceItems(TrinityLogLevel level = TrinityLogLevel.Debug)
        {

            var path = Path.Combine(FileManager.DemonBuddyPath, "Resources\\JS Class Generator\\ItemReference.js");

            if(File.Exists(path))
                File.Delete(path);

            using (StreamWriter w = File.AppendText(path))
            {
                w.WriteLine("var itemLookup = {");

                foreach (var item in Legendary.ToList())
                {
                    if(item.Id!=0)
                        w.WriteLine(string.Format("     \"{0}\": [\"{1}\", {2}, \"{3}\"],",item.Slug, item.Name, item.Id, item.InternalName));
                }

                w.WriteLine("}");                
            }

            Logger.Log("Dumped Reference Items to: {0}", path);
        }
Ejemplo n.º 7
0
 public static void LogSystemInformation(TrinityLogLevel level = TrinityLogLevel.Debug)
 {
     Logger.Log(level, LogCategory.UserInformation, "------ System Information ------");
     Logger.Log(level, LogCategory.UserInformation, "Processor: " + SystemInformation.Processor);
     Logger.Log(level, LogCategory.UserInformation, "Current Speed: " + SystemInformation.ActualProcessorSpeed);
     Logger.Log(level, LogCategory.UserInformation, "Operating System: " + SystemInformation.OperatingSystem);
     Logger.Log(level, LogCategory.UserInformation, "Motherboard: " + SystemInformation.MotherBoard);
     Logger.Log(level, LogCategory.UserInformation, "System Type: " + SystemInformation.SystemType);
     Logger.Log(level, LogCategory.UserInformation, "Free Physical Memory: " + SystemInformation.FreeMemory);
     Logger.Log(level, LogCategory.UserInformation, "Hard Drive: " + SystemInformation.HardDisk);
     Logger.Log(level, LogCategory.UserInformation, "Video Card: " + SystemInformation.VideoCard);
     Logger.Log(level, LogCategory.UserInformation, "Resolution: " + SystemInformation.Resolution);
 }
Ejemplo n.º 8
0
        public static void LogBuildAndItems(TrinityLogLevel level = TrinityLogLevel.Info)
        {
            try
            {
                using (new MemoryHelper())
                {
                    Action<Item, TrinityLogLevel> logItem = (i, l) =>
                    {
                        Logger.Log(l, LogCategory.UserInformation, string.Format("Item: {0}: {1} ({2}) is Equipped", i.ItemType, i.Name, i.Id));
                    };

                    if (ZetaDia.Me == null || !ZetaDia.Me.IsValid)
                    {
                        Logger.Log("Error: Not in game");
                        return;
                    }

                    if (!ZetaDia.Me.Inventory.Equipped.Any())
                    {
                        Logger.Log("Error: No equipped items detected");
                        return;
                    }

                    LogNewItems();

                    Logger.Log(level, LogCategory.UserInformation, "------ Equipped Legendaries: Items={0}, Sets={1} ------", Legendary.Equipped.Count, Sets.Equipped.Count);

                    Legendary.Equipped.Where(c => !c.IsSetItem || !c.Set.IsEquipped).ForEach(i => logItem(i, level));

                    Sets.Equipped.ForEach(s =>
                    {
                        Logger.Log(level, LogCategory.UserInformation, "------ Set: {0} {1}: {2}/{3} Equipped. ActiveBonuses={4}/{5} ------",
                            s.Name,
                            s.IsClassRestricted ? "(" + s.ClassRestriction + ")" : string.Empty,
                            s.EquippedItems.Count,
                            s.Items.Count,
                            s.CurrentBonuses,
                            s.MaxBonuses);

                        s.Items.Where(i => i.IsEquipped).ForEach(i => logItem(i, level));
                    });

                    Logger.Log(level, LogCategory.UserInformation, "------ Active Skills / Runes ------", SkillUtils.Active.Count, SkillUtils.Active.Count);

                    Action<Skill> logSkill = s =>
                    {
                        Logger.Log(level, LogCategory.UserInformation, "Skill: {0} Rune={1} Type={2}",
                            s.Name,
                            s.CurrentRune.Name,
                            (s.IsAttackSpender) ? "Spender" : (s.IsGeneratorOrPrimary) ? "Generator" : "Other"
                            );
                    };

                    SkillUtils.Active.ForEach(logSkill);

                    Logger.Log(level, LogCategory.UserInformation, "------ Passives ------", SkillUtils.Active.Count, SkillUtils.Active.Count);

                    Action<Passive> logPassive = p => Logger.Log(level, LogCategory.UserInformation, "Passive: {0}", p.Name);
                    
                    PassiveUtils.Active.ForEach(logPassive);

                }
            }
            catch (Exception ex)
            {
                Logger.Log("Exception in DebugUtil > LogBuildAndItems: {0} {1}", ex.Message, ex.InnerException);
            }
        }
Ejemplo n.º 9
0
 public void LogCounts(string msg = "", TrinityLogLevel level = TrinityLogLevel.Info)
 {
     Logger.Log(level, msg + " " + GetCountsString(Source));
 }
Ejemplo n.º 10
0
 public static void Log(TrinityLogLevel level, string formatMessage, params object[] args)
 {
     Log(level, LogCategory.UserInformation, formatMessage, args);
 }
Ejemplo n.º 11
0
 public void LogCounts(string msg = "", TrinityLogLevel level = TrinityLogLevel.Info)
 {
     Logger.Log(level, msg + " " + GetCountsString(Source));
 }
Ejemplo n.º 12
0
        private static void RefreshCacheMainLoop()
        {
            using (new PerformanceLogger("CacheManagement.RefreshCacheMainLoop"))
            {
                IEnumerable <DiaObject> refreshSource;

                if (Settings.Advanced.LogCategories.HasFlag(LogCategory.CacheManagement))
                {
                    refreshSource = ReadDebugActorsFromMemory();
                }
                else
                {
                    refreshSource = ReadActorsFromMemory();
                }
                Stopwatch t1 = new Stopwatch();

                foreach (DiaObject currentObject in refreshSource)
                {
                    try
                    {
                        // Objects deemed of low importance are stored from the last refresh
                        TrinityCacheObject cachedObject;
                        if (CacheData.LowPriorityObjectCache.TryGetValue(currentObject.RActorGuid, out cachedObject))
                        {
                            cachedObject.Distance = currentObject.Distance;
                            var timeSinceRefresh = DateTime.UtcNow.Subtract(cachedObject.LastSeenTime).TotalMilliseconds;

                            // Determine if we should use the stored object or not
                            if (timeSinceRefresh < Settings.Advanced.CacheLowPriorityRefreshRate && cachedObject.Distance > 12f)
                            {
                                cachedObject.Position = currentObject.Position;
                                ObjectCache.Add(cachedObject);
                                continue;
                            }
                        }

                        if (!Settings.Advanced.LogCategories.HasFlag(LogCategory.CacheManagement))
                        {
                            /*
                             *  Main Cache Function
                             */
                            bool addToCache = CacheDiaObject(currentObject);
                            CurrentCacheObject.IgnoreReason = c_IgnoreReason + "." + c_IgnoreSubStep; // (!addToCache ? ((c_IgnoreReason != "None" ? c_IgnoreReason + "." : "") + c_IgnoreSubStep) : "");
                            if (!CacheData.IgnoreReasons.ContainsKey(currentObject.RActorGuid))
                            {
                                CacheData.IgnoreReasons.Add(currentObject.RActorGuid, CurrentCacheObject.IgnoreReason);
                            }
                            if (addToCache)
                            {
                                ObjectCache.Add(CurrentCacheObject);
                            }
                        }
                        else
                        {
                            // We're debugging, slightly slower, calculate performance metrics and dump debugging to log
                            t1.Restart();

                            /*
                             *  Main Cache Function
                             */
                            bool addToCache = CacheDiaObject(currentObject);

                            CurrentCacheObject.IgnoreReason = c_IgnoreReason + "." + c_IgnoreSubStep; // (!addToCache ? ((c_IgnoreReason != "None" ? c_IgnoreReason + "." : "") + c_IgnoreSubStep) : "");
                            if (!CacheData.IgnoreReasons.ContainsKey(currentObject.RActorGuid))
                            {
                                CacheData.IgnoreReasons.Add(currentObject.RActorGuid, CurrentCacheObject.IgnoreReason);
                            }
                            if (addToCache)
                            {
                                ObjectCache.Add(CurrentCacheObject);
                            }

                            if (t1.IsRunning)
                            {
                                t1.Stop();
                            }

                            double duration = t1.Elapsed.TotalMilliseconds;

                            // don't log stuff we never care about
                            if (duration <= 1 && c_IgnoreSubStep == "IgnoreNames")
                            {
                                continue;
                            }
                            if (CurrentCacheObject.Type == TrinityObjectType.Player)
                            {
                                continue;
                            }

                            if (c_IgnoreReason != "InternalName")
                            {
                                Logger.Log(TrinityLogLevel.Debug, LogCategory.CacheManagement,
                                           "[{0:0000.00}ms] {1} {2} Type={3}/{4}/{5} Name={6} ({7}) {8} {9} Dist2Mid={10:0} Dist2Rad={11:0} ZDiff={12:0} Radius={13:0} RAGuid={14} {15}",
                                           duration,
                                           (addToCache ? "Added " : "Ignored"),
                                           CurrentCacheObject.IgnoreReason,
                                           CurrentCacheObject.ActorType,
                                           CurrentCacheObject.GizmoType != GizmoType.None ? CurrentCacheObject.GizmoType.ToString() : "",
                                           CurrentCacheObject.Type,
                                           CurrentCacheObject.InternalName,
                                           CurrentCacheObject.ActorSNO,
                                           (CurrentCacheObject.IsBoss ? " IsBoss" : ""),
                                           (c_CurrentAnimation != SNOAnim.Invalid ? " Anim: " + c_CurrentAnimation : ""),
                                           CurrentCacheObject.Distance,
                                           CurrentCacheObject.RadiusDistance,
                                           c_ZDiff,
                                           CurrentCacheObject.Radius,
                                           CurrentCacheObject.RActorGuid,
                                           CurrentCacheObject.ExtraInfo);
                            }
                        }
                    }
                    catch (Exception ex)
                    {
                        TrinityLogLevel ll = TrinityLogLevel.Debug;
                        LogCategory     lc = LogCategory.CacheManagement;

                        if (ex is NullReferenceException)
                        {
                            ll = TrinityLogLevel.Error;
                            lc = LogCategory.UserInformation;
                        }

                        string gizmoType = "";
                        var    giz       = currentObject as DiaGizmo;
                        if (giz != null && giz.CommonData.IsValid)
                        {
                            gizmoType = "GizmoType: " + giz.CommonData.ActorInfo.GizmoType.ToString();
                        }
                        Logger.Log(ll, lc, "Error while refreshing DiaObject ActorSNO: {0} Name: {1} Type: {2} Distance: {3:0} {4} {5}",
                                   currentObject.ActorSNO, currentObject.Name, currentObject.ActorType, currentObject.Distance, gizmoType, ex);
                    }
                }
            }
        }
Ejemplo n.º 13
0
 public void LogLocation(string pre, CombatMovement movement, string post = "", TrinityLogLevel level = TrinityLogLevel.Info)
 {
     Logger.Log(level, LogCategory.Movement, pre + " {0} Distance={4:0.#} ({1:0.#},{2:0.#},{3:0.#}) {5}",
                movement.Name,
                movement.Destination.X,
                movement.Destination.Y,
                movement.Destination.Z,
                ZetaDia.Me.Position.Distance(movement.Destination),
                post);
 }
Ejemplo n.º 14
0
 public static void Log(TrinityLogLevel level, string formatMessage, params object[] args)
 {
     Log(level, LogCategory.UserInformation, formatMessage, args);
 }
Ejemplo n.º 15
0
        public static void LogBuildAndItems(TrinityLogLevel level = TrinityLogLevel.Info)
        {
            try
            {
                Action <Item, TrinityLogLevel> logItem = (i, l) =>
                {
                    Core.Logger.Log($"Item: {i.ItemType}: {i.Name} ({i.Id}) is Equipped");
                };

                Action <ACDItem, TrinityLogLevel> logACDItem = (i, l) =>
                {
                    Core.Logger.Log($"Item: {i.ItemType}: {i.Name} ({i.ActorSnoId}) is Equipped");
                };

                if (ZetaDia.Me == null || !ZetaDia.Me.IsValid)
                {
                    Core.Logger.Log("Error: Not in game");
                    return;
                }

                var equipped = InventoryManager.Equipped;
                if (!equipped.Any())
                {
                    Core.Logger.Log("Error: No equipped items detected");
                    return;
                }

                LogNewItems();

                var equippedItems = Legendary.Equipped.Where(c => (!c.IsSetItem || !c.Set.IsEquipped) && !c.IsEquippedInCube).ToList();
                Core.Logger.Log("------ Equipped Non-Set Legendaries: Items={0}, Sets={1} ------", equippedItems.Count, Sets.Equipped.Count);
                equippedItems.ForEach(i => logItem(i, level));

                var cubeItems = Legendary.Equipped.Where(c => c.IsEquippedInCube).ToList();
                Core.Logger.Log("------ Equipped in Kanai's Cube: Items={0} ------", cubeItems.Count, Sets.Equipped.Count);
                cubeItems.ForEach(i => logItem(i, level));

                Sets.Equipped.ForEach(s =>
                {
                    Core.Logger.Log("------ Set: {0} {1}: {2}/{3} Equipped. ActiveBonuses={4}/{5} ------",
                                    s.Name,
                                    s.IsClassRestricted ? "(" + s.ClassRestriction + ")" : string.Empty,
                                    s.EquippedItems.Count,
                                    s.Items.Count,
                                    s.CurrentBonuses,
                                    s.MaxBonuses);

                    s.Items.Where(i => i.IsEquipped).ForEach(i => logItem(i, level));
                });

                Core.Logger.Log("------ Active Skills / Runes ------", SkillUtils.Active.Count, SkillUtils.Active.Count);

                Action <Skill> logSkill = s =>
                {
                    Core.Logger.Log("Skill: {0} Rune={1} Type={2}",
                                    s.Name,
                                    s.CurrentRune.Name,
                                    (s.IsAttackSpender) ? "Spender" : (s.IsGeneratorOrPrimary) ? "Generator" : "Other"
                                    );
                };

                SkillUtils.Active.ForEach(logSkill);

                Core.Logger.Log("------ Passives ------");

                Action <Passive> logPassive = p => Core.Logger.Log("Passive: {0}", p.Name);

                PassiveUtils.Active.ForEach(logPassive);
            }
            catch (Exception ex)
            {
                Core.Logger.Log("Exception in DebugUtil > LogBuildAndItems: {0} {1} {2}", ex.Message, ex.InnerException, ex);
            }
        }
Ejemplo n.º 16
0
 public void LogLocation(string pre, CombatMovement movement, string post = "", TrinityLogLevel level = TrinityLogLevel.Info)
 {
     Logger.Log(level, LogCategory.Movement, pre + " {0} Distance={4:0.#} ({1:0.#},{2:0.#},{3:0.#}) {5}",
         movement.Name,
         movement.Destination.X,
         movement.Destination.Y,
         movement.Destination.Z,
         ZetaDia.Me.Position.Distance(movement.Destination),
         post);
 }
Ejemplo n.º 17
0
        private static void RefreshCacheMainLoop()
        {
            using (new PerformanceLogger("CacheManagement.RefreshCacheMainLoop"))
            {
                IEnumerable <DiaObject> refreshSource;

                if (Settings.Advanced.LogCategories.HasFlag(LogCategory.CacheManagement))
                {
                    refreshSource = ReadDebugActorsFromMemory();
                }
                else
                {
                    refreshSource = ReadActorsFromMemory();
                }
                Stopwatch t1 = new Stopwatch();

                foreach (DiaObject currentObject in refreshSource)
                {
                    try
                    {
                        bool AddToCache = false;

                        if (!Settings.Advanced.LogCategories.HasFlag(LogCategory.CacheManagement))
                        {
                            /*
                             *  Main Cache Function
                             */
                            AddToCache = CacheDiaObject(currentObject);
                        }
                        else
                        {
                            // We're debugging, slightly slower, calculate performance metrics and dump debugging to log
                            t1.Reset();
                            t1.Start();

                            /*
                             *  Main Cache Function
                             */
                            AddToCache = CacheDiaObject(currentObject);

                            if (t1.IsRunning)
                            {
                                t1.Stop();
                            }

                            double duration = t1.Elapsed.TotalMilliseconds;

                            // don't log stuff we never care about
                            if (duration <= 1 && c_IgnoreSubStep == "IgnoreNames")
                            {
                                continue;
                            }

                            string extraData = "";

                            switch (CurrentCacheObject.Type)
                            {
                            case GObjectType.Unit:
                            {
                                if (c_IsEliteRareUnique)
                                {
                                    extraData += " IsElite " + c_MonsterAffixes.ToString();
                                }

                                if (c_unit_HasShieldAffix)
                                {
                                    extraData += " HasAffixShielded";
                                }

                                if (c_HasDotDPS)
                                {
                                    extraData += " HasDotDPS";
                                }

                                if (c_HasBeenInLoS)
                                {
                                    extraData += " HasBeenInLoS";
                                }

                                extraData += " HP=" + c_HitPoints.ToString("0") + " (" + c_HitPointsPct.ToString("0.00") + ")";
                            } break;

                            case GObjectType.Avoidance:
                            {
                                extraData += _standingInAvoidance ? "InAoE " : "";
                                break;
                            }
                            }

                            if (c_IgnoreReason != "InternalName")
                            {
                                Logger.Log(TrinityLogLevel.Debug, LogCategory.CacheManagement,
                                           "[{0:0000.00}ms] {1} {2} Type: {3} ({4}/{5}) Name={6} ({7}) {8} {9} Dist2Mid={10:0} Dist2Rad={11:0} ZDiff={12:0} Radius={13:0} RAGuid={14} {15}",
                                           duration,
                                           (AddToCache ? "Added " : "Ignored"),
                                           (!AddToCache ? ("By: " + (c_IgnoreReason != "None" ? c_IgnoreReason + "." : "") + c_IgnoreSubStep) : ""),
                                           CurrentCacheObject.ActorType,
                                           CurrentCacheObject.GizmoType != GizmoType.None ? CurrentCacheObject.GizmoType.ToString() : "",
                                           CurrentCacheObject.Type,
                                           CurrentCacheObject.InternalName,
                                           CurrentCacheObject.ActorSNO,
                                           (CurrentCacheObject.IsBoss ? " IsBoss" : ""),
                                           (c_CurrentAnimation != SNOAnim.Invalid ? " Anim: " + c_CurrentAnimation : ""),
                                           CurrentCacheObject.Distance,
                                           CurrentCacheObject.RadiusDistance,
                                           c_ZDiff,
                                           CurrentCacheObject.Radius,
                                           CurrentCacheObject.RActorGuid,
                                           extraData);
                            }
                        }
                    }
                    catch (Exception ex)
                    {
                        TrinityLogLevel ll = TrinityLogLevel.Debug;
                        LogCategory     lc = LogCategory.CacheManagement;

                        if (ex is NullReferenceException)
                        {
                            ll = TrinityLogLevel.Error;
                            lc = LogCategory.UserInformation;
                        }

                        string gizmoType = "";
                        if (currentObject is DiaGizmo)
                        {
                            gizmoType = "GizmoType: " + ((DiaGizmo)currentObject).CommonData.ActorInfo.GizmoType.ToString();
                        }
                        Logger.Log(ll, lc, "Error while refreshing DiaObject ActorSNO: {0} Name: {1} Type: {2} Distance: {3:0} {4} {5}",
                                   currentObject.ActorSNO, currentObject.Name, currentObject.ActorType, currentObject.Distance, gizmoType, ex.Message);
                    }
                }
            }
        }