Skip to content

Commit b65386e

Browse files
Update logging in order to use ZString, up to 8 arguments
1 parent 044b723 commit b65386e

3 files changed

Lines changed: 1110 additions & 7 deletions

File tree

src/Logging/CompoundLogger.cs

Lines changed: 257 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,4 @@
1+
extern alias References;
12
using System.Collections.Generic;
23

34
namespace Oxide.Core.Logging
@@ -94,6 +95,262 @@ public override void Write(LogType type, string format, params object[] args)
9495
}
9596
}
9697

98+
/// <summary>
99+
/// Writes a message to all subloggers of this logger
100+
/// </summary>
101+
/// <param name="type"></param>
102+
/// <param name="format"></param>
103+
/// <param name="arg"></param>
104+
/// <typeparam name="T"></typeparam>
105+
public override void Write<T>(LogType type, string format, T arg)
106+
{
107+
// Write to all current subloggers
108+
foreach (Logger logger in subloggers)
109+
{
110+
logger.Write(type, format, arg);
111+
}
112+
113+
// Cache it for any loggers added late
114+
if (usecache)
115+
{
116+
lock (Lock)
117+
{
118+
messagecache.Add(CreateLogMessage(type, format, arg));
119+
}
120+
}
121+
}
122+
123+
/// <summary>
124+
/// Writes a message to all subloggers of this logger
125+
/// </summary>
126+
/// <param name="type"></param>
127+
/// <param name="format"></param>
128+
/// <param name="arg1"></param>
129+
/// <param name="arg2"></param>
130+
/// <typeparam name="T1"></typeparam>
131+
/// <typeparam name="T2"></typeparam>
132+
public override void Write<T1, T2>(LogType type, string format, T1 arg1, T2 arg2)
133+
{
134+
// Write to all current subloggers
135+
foreach (Logger logger in subloggers)
136+
{
137+
logger.Write(type, format, arg1, arg2);
138+
}
139+
140+
// Cache it for any loggers added late
141+
if (usecache)
142+
{
143+
lock (Lock)
144+
{
145+
messagecache.Add(CreateLogMessage(type, format, arg1, arg2));
146+
}
147+
}
148+
}
149+
150+
/// <summary>
151+
/// Writes a message to all subloggers of this logger
152+
/// </summary>
153+
/// <param name="type"></param>
154+
/// <param name="format"></param>
155+
/// <param name="arg1"></param>
156+
/// <param name="arg2"></param>
157+
/// <param name="arg3"></param>
158+
/// <typeparam name="T1"></typeparam>
159+
/// <typeparam name="T2"></typeparam>
160+
/// <typeparam name="T3"></typeparam>
161+
public override void Write<T1, T2, T3>(LogType type, string format, T1 arg1, T2 arg2, T3 arg3)
162+
{
163+
// Write to all current subloggers
164+
foreach (Logger logger in subloggers)
165+
{
166+
logger.Write(type, format, arg1, arg2, arg3);
167+
}
168+
169+
// Cache it for any loggers added late
170+
if (usecache)
171+
{
172+
lock (Lock)
173+
{
174+
messagecache.Add(CreateLogMessage(type, format, arg1, arg2, arg3));
175+
}
176+
}
177+
}
178+
179+
/// <summary>
180+
/// Writes a message to all subloggers of this logger
181+
/// </summary>
182+
/// <param name="type"></param>
183+
/// <param name="format"></param>
184+
/// <param name="arg1"></param>
185+
/// <param name="arg2"></param>
186+
/// <param name="arg3"></param>
187+
/// <param name="arg4"></param>
188+
/// <typeparam name="T1"></typeparam>
189+
/// <typeparam name="T2"></typeparam>
190+
/// <typeparam name="T3"></typeparam>
191+
/// <typeparam name="T4"></typeparam>
192+
public override void Write<T1, T2, T3, T4>(LogType type, string format, T1 arg1, T2 arg2, T3 arg3, T4 arg4)
193+
{
194+
// Write to all current subloggers
195+
foreach (Logger logger in subloggers)
196+
{
197+
logger.Write(type, format, arg1, arg2, arg3, arg4);
198+
}
199+
200+
// Cache it for any loggers added late
201+
if (usecache)
202+
{
203+
lock (Lock)
204+
{
205+
messagecache.Add(CreateLogMessage(type, format, arg1, arg2, arg3, arg4));
206+
}
207+
}
208+
}
209+
210+
/// <summary>
211+
/// Writes a message to all subloggers of this logger
212+
/// </summary>
213+
/// <param name="type"></param>
214+
/// <param name="format"></param>
215+
/// <param name="arg1"></param>
216+
/// <param name="arg2"></param>
217+
/// <param name="arg3"></param>
218+
/// <param name="arg4"></param>
219+
/// <param name="arg5"></param>
220+
/// <typeparam name="T1"></typeparam>
221+
/// <typeparam name="T2"></typeparam>
222+
/// <typeparam name="T3"></typeparam>
223+
/// <typeparam name="T4"></typeparam>
224+
/// <typeparam name="T5"></typeparam>
225+
public override void Write<T1, T2, T3, T4, T5>(LogType type, string format, T1 arg1, T2 arg2, T3 arg3, T4 arg4, T5 arg5)
226+
{
227+
// Write to all current subloggers
228+
foreach (Logger logger in subloggers)
229+
{
230+
logger.Write(type, format, arg1, arg2, arg3, arg4, arg5);
231+
}
232+
233+
// Cache it for any loggers added late
234+
if (usecache)
235+
{
236+
lock (Lock)
237+
{
238+
messagecache.Add(CreateLogMessage(type, format, arg1, arg2, arg3, arg4, arg5));
239+
}
240+
}
241+
}
242+
243+
/// <summary>
244+
/// Writes a message to all subloggers of this logger
245+
/// </summary>
246+
/// <param name="type"></param>
247+
/// <param name="format"></param>
248+
/// <param name="arg1"></param>
249+
/// <param name="arg2"></param>
250+
/// <param name="arg3"></param>
251+
/// <param name="arg4"></param>
252+
/// <param name="arg5"></param>
253+
/// <param name="arg6"></param>
254+
/// <typeparam name="T1"></typeparam>
255+
/// <typeparam name="T2"></typeparam>
256+
/// <typeparam name="T3"></typeparam>
257+
/// <typeparam name="T4"></typeparam>
258+
/// <typeparam name="T5"></typeparam>
259+
/// <typeparam name="T6"></typeparam>
260+
public override void Write<T1, T2, T3, T4, T5, T6>(LogType type, string format, T1 arg1, T2 arg2, T3 arg3, T4 arg4, T5 arg5, T6 arg6)
261+
{
262+
// Write to all current subloggers
263+
foreach (Logger logger in subloggers)
264+
{
265+
logger.Write(type, format, arg1, arg2, arg3, arg4, arg5, arg6);
266+
}
267+
268+
// Cache it for any loggers added late
269+
if (usecache)
270+
{
271+
lock (Lock)
272+
{
273+
messagecache.Add(CreateLogMessage(type, format, arg1, arg2, arg3, arg4, arg5, arg6));
274+
}
275+
}
276+
}
277+
278+
/// <summary>
279+
/// Writes a message to all subloggers of this logger
280+
/// </summary>
281+
/// <param name="type"></param>
282+
/// <param name="format"></param>
283+
/// <param name="arg1"></param>
284+
/// <param name="arg2"></param>
285+
/// <param name="arg3"></param>
286+
/// <param name="arg4"></param>
287+
/// <param name="arg5"></param>
288+
/// <param name="arg6"></param>
289+
/// <param name="arg7"></param>
290+
/// <typeparam name="T1"></typeparam>
291+
/// <typeparam name="T2"></typeparam>
292+
/// <typeparam name="T3"></typeparam>
293+
/// <typeparam name="T4"></typeparam>
294+
/// <typeparam name="T5"></typeparam>
295+
/// <typeparam name="T6"></typeparam>
296+
/// <typeparam name="T7"></typeparam>
297+
public override void Write<T1, T2, T3, T4, T5, T6, T7>(LogType type, string format, T1 arg1, T2 arg2, T3 arg3, T4 arg4, T5 arg5, T6 arg6, T7 arg7)
298+
{
299+
// Write to all current subloggers
300+
foreach (Logger logger in subloggers)
301+
{
302+
logger.Write(type, format, arg1, arg2, arg3, arg4, arg5, arg6, arg7);
303+
}
304+
305+
// Cache it for any loggers added late
306+
if (usecache)
307+
{
308+
lock (Lock)
309+
{
310+
messagecache.Add(CreateLogMessage(type, format, arg1, arg2, arg3, arg4, arg5, arg6, arg7));
311+
}
312+
}
313+
}
314+
315+
/// <summary>
316+
/// Writes a message to all subloggers of this logger
317+
/// </summary>
318+
/// <param name="type"></param>
319+
/// <param name="format"></param>
320+
/// <param name="arg1"></param>
321+
/// <param name="arg2"></param>
322+
/// <param name="arg3"></param>
323+
/// <param name="arg4"></param>
324+
/// <param name="arg5"></param>
325+
/// <param name="arg6"></param>
326+
/// <param name="arg7"></param>
327+
/// <param name="arg8"></param>
328+
/// <typeparam name="T1"></typeparam>
329+
/// <typeparam name="T2"></typeparam>
330+
/// <typeparam name="T3"></typeparam>
331+
/// <typeparam name="T4"></typeparam>
332+
/// <typeparam name="T5"></typeparam>
333+
/// <typeparam name="T6"></typeparam>
334+
/// <typeparam name="T7"></typeparam>
335+
/// <typeparam name="T8"></typeparam>
336+
public override void Write<T1, T2, T3, T4, T5, T6, T7, T8>(LogType type, string format, T1 arg1, T2 arg2, T3 arg3, T4 arg4, T5 arg5, T6 arg6, T7 arg7, T8 arg8)
337+
{
338+
// Write to all current subloggers
339+
foreach (Logger logger in subloggers)
340+
{
341+
logger.Write(type, format, arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8);
342+
}
343+
344+
// Cache it for any loggers added late
345+
if (usecache)
346+
{
347+
lock (Lock)
348+
{
349+
messagecache.Add(CreateLogMessage(type, format, arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8));
350+
}
351+
}
352+
}
353+
97354
/// <summary>
98355
/// Disables logger message cache
99356
/// </summary>

0 commit comments

Comments
 (0)