diff --git a/src/AcaciaZPushPlugin/AcaciaZPushPlugin/Stubs/IBase.cs b/src/AcaciaZPushPlugin/AcaciaZPushPlugin/Stubs/IBase.cs index d02c6a6..aca2d30 100644 --- a/src/AcaciaZPushPlugin/AcaciaZPushPlugin/Stubs/IBase.cs +++ b/src/AcaciaZPushPlugin/AcaciaZPushPlugin/Stubs/IBase.cs @@ -36,6 +36,7 @@ namespace Acacia.Stubs #region Ids and hierarchy + string LogKey { get; } string EntryID { get; } IFolder Parent { get; } string ParentEntryID { get; } diff --git a/src/AcaciaZPushPlugin/AcaciaZPushPlugin/Stubs/OutlookWrappers/FolderWrapper.cs b/src/AcaciaZPushPlugin/AcaciaZPushPlugin/Stubs/OutlookWrappers/FolderWrapper.cs index 9e3984d..d75e821 100644 --- a/src/AcaciaZPushPlugin/AcaciaZPushPlugin/Stubs/OutlookWrappers/FolderWrapper.cs +++ b/src/AcaciaZPushPlugin/AcaciaZPushPlugin/Stubs/OutlookWrappers/FolderWrapper.cs @@ -133,6 +133,25 @@ namespace Acacia.Stubs.OutlookWrappers } } + public override string LogKey + { + get + { + string s = EntryID; + try + { + s += ":" + SyncId; + } + catch (Exception) { } + try + { + s += ":" + Name; + } + catch (Exception) { } + return s; + } + } + override public string EntryID { get { return _item.EntryID; } } override public IStore GetStore() { return Mapping.Wrap(_item.Store); } diff --git a/src/AcaciaZPushPlugin/AcaciaZPushPlugin/Stubs/OutlookWrappers/OutlookWrapper.cs b/src/AcaciaZPushPlugin/AcaciaZPushPlugin/Stubs/OutlookWrappers/OutlookWrapper.cs index ae5bb3c..a02c0bd 100644 --- a/src/AcaciaZPushPlugin/AcaciaZPushPlugin/Stubs/OutlookWrappers/OutlookWrapper.cs +++ b/src/AcaciaZPushPlugin/AcaciaZPushPlugin/Stubs/OutlookWrappers/OutlookWrapper.cs @@ -82,6 +82,11 @@ namespace Acacia.Stubs.OutlookWrappers } } + virtual public string LogKey + { + get { return EntryID; } + } + abstract public string EntryID { get; diff --git a/src/AcaciaZPushPlugin/AcaciaZPushPlugin/ZPush/ZPushFolder.cs b/src/AcaciaZPushPlugin/AcaciaZPushPlugin/ZPush/ZPushFolder.cs index f45cc70..eeeb66f 100644 --- a/src/AcaciaZPushPlugin/AcaciaZPushPlugin/ZPush/ZPushFolder.cs +++ b/src/AcaciaZPushPlugin/AcaciaZPushPlugin/ZPush/ZPushFolder.cs @@ -48,7 +48,7 @@ namespace Acacia.ZPush private ZPushFolder(ZPushWatcher watcher, ZPushFolder parent, IFolder folder) { - Logger.Instance.Trace(this, "Watching folder: {1}: {0}", folder.EntryID, folder.Name); + Logger.Instance.Trace(this, "Watching folder: {0}", folder.LogKey); this._parent = parent; this._watcher = watcher; this._folder = folder; @@ -68,7 +68,7 @@ namespace Acacia.ZPush public override string ToString() { - return Name; + return _folder.LogKey; } public IFolder Folder { get { return _folder; } } @@ -152,17 +152,17 @@ namespace Acacia.ZPush { try { - Logger.Instance.Debug(this, "Folder added in {0}: {1}", Name, folder.Name); + Logger.Instance.Debug(this, "Folder added in {0}: {1}", _folder.LogKey, folder.LogKey); WatchChild(folder, false); } - catch (System.Exception e) { Logger.Instance.Error(this, "Exception in SubFolders_FolderAdd: {0}: {1}", Name, e); } + catch (System.Exception e) { Logger.Instance.Error(this, "Exception in SubFolders_FolderAdd: {0}: {1}", _folder.LogKey, e); } } private void SubFolders_FolderRemove() { try { - Logger.Instance.Debug(this, "Folder removed from {0}", Name); + Logger.Instance.Debug(this, "Folder removed from {0}", _folder.LogKey); // Helpfully, Outlook doesn't tell us which folder was removed. Could use the BeforeFolderMove event instead, // but that doesn't fire if a folder was removed on the server. @@ -193,20 +193,20 @@ namespace Acacia.ZPush // Actually remove the folders foreach (var entry in remove) { - Logger.Instance.Debug(this, "Removing subfolder {0}, {1}", Name, entry.Key); + Logger.Instance.Debug(this, "Removing subfolder {0}, {1}", _folder.LogKey, entry.Key); _watcher.OnFolderRemoved(entry.Value); _children.Remove(entry.Key); entry.Value.Cleanup(); } } - catch (System.Exception e) { Logger.Instance.Error(this, "Exception in SubFolders_FolderRemove: {0}: {1}", Name, e); } + catch (System.Exception e) { Logger.Instance.Error(this, "Exception in SubFolders_FolderRemove: {0}: {1}", _folder.LogKey, e); } } private void SubFolders_FolderChange(IFolder folder) { try { - Logger.Instance.Debug(this, "Folder changed in {0}: {1}", Name, folder.Name); + Logger.Instance.Debug(this, "Folder changed in {0}: {1}", _folder.LogKey, folder.LogKey); ZPushFolder child; if (_children.TryGetValue(folder.EntryID, out child)) { @@ -217,24 +217,24 @@ namespace Acacia.ZPush // On a clean profile, we sometimes get a change notification, but not an add notification // Create it now // This will send a discover notification if required, which is just as good as a change notification - Logger.Instance.Debug(this, "Folder change on unreported folder in {0}: {1}, {2}, {3}", Name, folder.Name, folder.EntryID, folder.StoreDisplayName); + Logger.Instance.Debug(this, "Folder change on unreported folder in {0}: {1}, {2}", _folder.LogKey, folder.LogKey, folder.StoreDisplayName); WatchChild(folder, false); } } - catch (System.Exception e) { Logger.Instance.Error(this, "Exception in SubFolders_FolderChange: {0}: {1}", Name, e); } + catch (System.Exception e) { Logger.Instance.Error(this, "Exception in SubFolders_FolderChange: {0}: {1}", _folder.LogKey, e); } } private void Items_ItemAdd(IItem item) { try { - Logger.Instance.Trace(this, "New item {0}: {1}", Name, item.EntryID); + Logger.Instance.Trace(this, "New item {0}: {1}", _folder.LogKey, item.EntryID); foreach (ItemsWatcher watcher in _itemsWatchers) watcher.OnItemAdd(this, item); } catch (System.Exception e) { - Logger.Instance.Trace(this, "ItemAdd exception: {0}: {1}", Name, e); + Logger.Instance.Trace(this, "ItemAdd exception: {0}: {1}", _folder.LogKey, e); } } @@ -248,7 +248,7 @@ namespace Acacia.ZPush } catch (System.Exception e) { - Logger.Instance.Trace(this, "ItemChange exception: {0}: {1}", Name, e); + Logger.Instance.Trace(this, "ItemChange exception: {0}: {1}", _folder.LogKey, e); } } @@ -278,7 +278,7 @@ namespace Acacia.ZPush { if (_watcher.ShouldFolderBeWatched(this, child)) { - Logger.Instance.Trace(this, "Registering child on {0}: {1}", this, child.FullFolderPath); + Logger.Instance.Trace(this, "Registering child on {0}: {1}", _folder.LogKey, child.FullFolderPath); // Make sure we register the entry id actually before registering any listeners. // That will cause change notifications, which require the entryid to be registered. @@ -290,7 +290,7 @@ namespace Acacia.ZPush } else { - Logger.Instance.Trace(this, "Excluding child on {0}: {1}", this, child.FullFolderPath); + Logger.Instance.Trace(this, "Excluding child on {0}: {1}", _folder.LogKey, child.FullFolderPath); } }