diff options
author | Bob Arnson <bob@firegiant.com> | 2020-01-17 21:06:00 -0500 |
---|---|---|
committer | Bob Arnson <bob@firegiant.com> | 2020-01-17 21:48:02 -0500 |
commit | 772ed422f3195c899246f16c9c2e5b5a839d06cd (patch) | |
tree | d35e1f3ae2b53b71a47cb1d2cae127af87effcc0 /src | |
parent | 94b941ee95a294228516097c269e27dfa41593ab (diff) | |
download | wix-772ed422f3195c899246f16c9c2e5b5a839d06cd.tar.gz wix-772ed422f3195c899246f16c9c2e5b5a839d06cd.tar.bz2 wix-772ed422f3195c899246f16c9c2e5b5a839d06cd.zip |
Let listeners adjust message levels; general messaging cleanup.
Diffstat (limited to 'src')
-rw-r--r-- | src/WixToolset.Core.TestPackage/TestMessageListener.cs | 5 | ||||
-rw-r--r-- | src/WixToolset.Core/ExtensibilityServices/Messaging.cs | 89 |
2 files changed, 7 insertions, 87 deletions
diff --git a/src/WixToolset.Core.TestPackage/TestMessageListener.cs b/src/WixToolset.Core.TestPackage/TestMessageListener.cs index 246cddd8..b5863869 100644 --- a/src/WixToolset.Core.TestPackage/TestMessageListener.cs +++ b/src/WixToolset.Core.TestPackage/TestMessageListener.cs | |||
@@ -1,6 +1,7 @@ | |||
1 | using System.Collections.Generic; | 1 | using System.Collections.Generic; |
2 | using WixToolset.Data; | 2 | using WixToolset.Data; |
3 | using WixToolset.Extensibility; | 3 | using WixToolset.Extensibility; |
4 | using WixToolset.Extensibility.Services; | ||
4 | 5 | ||
5 | namespace WixToolset.Core.TestPackage | 6 | namespace WixToolset.Core.TestPackage |
6 | { | 7 | { |
@@ -21,5 +22,7 @@ namespace WixToolset.Core.TestPackage | |||
21 | { | 22 | { |
22 | this.Messages.Add(new Message(null, MessageLevel.Information, 0, message)); | 23 | this.Messages.Add(new Message(null, MessageLevel.Information, 0, message)); |
23 | } | 24 | } |
25 | |||
26 | public MessageLevel CalculateMessageLevel(IMessaging messaging, Message message, MessageLevel defaultMessageLevel) => defaultMessageLevel; | ||
24 | } | 27 | } |
25 | } | 28 | } |
diff --git a/src/WixToolset.Core/ExtensibilityServices/Messaging.cs b/src/WixToolset.Core/ExtensibilityServices/Messaging.cs index f4673952..266d842a 100644 --- a/src/WixToolset.Core/ExtensibilityServices/Messaging.cs +++ b/src/WixToolset.Core/ExtensibilityServices/Messaging.cs | |||
@@ -41,94 +41,9 @@ namespace WixToolset.Core.ExtensibilityServices | |||
41 | this.suppressedWarnings.Add(warningNumber); | 41 | this.suppressedWarnings.Add(warningNumber); |
42 | } | 42 | } |
43 | 43 | ||
44 | public string FormatMessage(Message message) | ||
45 | { | ||
46 | var level = CalculateMessageLevel(message); | ||
47 | |||
48 | if (level == MessageLevel.Nothing) | ||
49 | { | ||
50 | return String.Empty; | ||
51 | } | ||
52 | |||
53 | var shortAppName = String.IsNullOrEmpty(this.listener?.ShortAppName) ? "WIX" : this.listener.ShortAppName; | ||
54 | var longAppName = String.IsNullOrEmpty(this.listener?.LongAppName) ? "WIX" : this.listener.LongAppName; | ||
55 | |||
56 | var fileNames = new List<string>(); | ||
57 | var errorFileName = longAppName; | ||
58 | for (var sln = message.SourceLineNumbers; null != sln; sln = sln.Parent) | ||
59 | { | ||
60 | if (String.IsNullOrEmpty(sln.FileName)) | ||
61 | { | ||
62 | continue; | ||
63 | } | ||
64 | else if (sln.LineNumber.HasValue) | ||
65 | { | ||
66 | if (fileNames.Count == 0) | ||
67 | { | ||
68 | errorFileName = String.Format(CultureInfo.CurrentUICulture, "{0}({1})", sln.FileName, sln.LineNumber); | ||
69 | } | ||
70 | |||
71 | fileNames.Add(String.Format(CultureInfo.CurrentUICulture, "{0}: line {1}", sln.FileName, sln.LineNumber)); | ||
72 | } | ||
73 | else | ||
74 | { | ||
75 | if (fileNames.Count == 0) | ||
76 | { | ||
77 | errorFileName = sln.FileName; | ||
78 | } | ||
79 | |||
80 | fileNames.Add(sln.FileName); | ||
81 | } | ||
82 | } | ||
83 | |||
84 | var levelString = String.Empty; | ||
85 | if (MessageLevel.Warning == level) | ||
86 | { | ||
87 | levelString = "warning"; | ||
88 | } | ||
89 | else if (MessageLevel.Error == level) | ||
90 | { | ||
91 | levelString = "error"; | ||
92 | } | ||
93 | |||
94 | string formatted; | ||
95 | if (message.ResourceManager == null) | ||
96 | { | ||
97 | formatted = String.Format(CultureInfo.InvariantCulture, message.ResourceNameOrFormat, message.MessageArgs); | ||
98 | } | ||
99 | else | ||
100 | { | ||
101 | formatted = String.Format(CultureInfo.InvariantCulture, message.ResourceManager.GetString(message.ResourceNameOrFormat), message.MessageArgs); | ||
102 | } | ||
103 | |||
104 | var builder = new StringBuilder(); | ||
105 | if (level == MessageLevel.Information || level == MessageLevel.Verbose) | ||
106 | { | ||
107 | builder.Append(formatted); | ||
108 | } | ||
109 | else | ||
110 | { | ||
111 | builder.AppendFormat("{0} : {1} {2}{3:0000} : {4}", errorFileName, levelString, shortAppName, message.Id, formatted); | ||
112 | } | ||
113 | |||
114 | if (fileNames.Count > 1) | ||
115 | { | ||
116 | builder.AppendFormat("Source trace:{0}", Environment.NewLine); | ||
117 | |||
118 | foreach (var fileName in fileNames) | ||
119 | { | ||
120 | builder.AppendFormat("Source trace:{0}", fileName, Environment.NewLine); | ||
121 | } | ||
122 | |||
123 | builder.AppendLine(); | ||
124 | } | ||
125 | |||
126 | return builder.ToString(); | ||
127 | } | ||
128 | |||
129 | public void Write(Message message) | 44 | public void Write(Message message) |
130 | { | 45 | { |
131 | var level = CalculateMessageLevel(message); | 46 | var level = this.CalculateMessageLevel(message); |
132 | 47 | ||
133 | if (level == MessageLevel.Nothing) | 48 | if (level == MessageLevel.Nothing) |
134 | { | 49 | { |
@@ -188,6 +103,8 @@ namespace WixToolset.Core.ExtensibilityServices | |||
188 | } | 103 | } |
189 | } | 104 | } |
190 | 105 | ||
106 | level = this.listener?.CalculateMessageLevel(this, message, level) ?? level; | ||
107 | |||
191 | return level; | 108 | return level; |
192 | } | 109 | } |
193 | } | 110 | } |