No Description
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

LogExtensions.cs 25KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562
  1. // <auto-generated/>
  2. // ReSharper disable CheckNamespace
  3. namespace RSTP_DSLink.Logging
  4. {
  5. using System;
  6. #if LIBLOG_EXCLUDE_CODE_COVERAGE
  7. using System.Diagnostics.CodeAnalysis;
  8. #endif
  9. /// <summary>
  10. /// Extension methods for the <see cref="ILog"/> interface.
  11. /// </summary>
  12. #if LIBLOG_EXCLUDE_CODE_COVERAGE
  13. [ExcludeFromCodeCoverage]
  14. #endif
  15. #if LIBLOG_PUBLIC
  16. public
  17. #else
  18. internal
  19. #endif
  20. static class LogExtensions
  21. {
  22. internal static readonly object[] EmptyParams = new object[0];
  23. /// <summary>
  24. /// Check if the <see cref="LogLevel.Debug"/> log level is enabled.
  25. /// </summary>
  26. /// <param name="logger">The <see cref="ILog"/> to check with.</param>
  27. /// <returns>True if the log level is enabled; false otherwise.</returns>
  28. public static bool IsDebugEnabled(this ILog logger)
  29. {
  30. GuardAgainstNullLogger(logger);
  31. return logger.Log(LogLevel.Debug, null, null, EmptyParams);
  32. }
  33. /// <summary>
  34. /// Check if the <see cref="LogLevel.Error"/> log level is enabled.
  35. /// </summary>
  36. /// <param name="logger">The <see cref="ILog"/> to check with.</param>
  37. /// <returns>True if the log level is enabled; false otherwise.</returns>
  38. public static bool IsErrorEnabled(this ILog logger)
  39. {
  40. GuardAgainstNullLogger(logger);
  41. return logger.Log(LogLevel.Error, null, null, EmptyParams);
  42. }
  43. /// <summary>
  44. /// Check if the <see cref="LogLevel.Fatal"/> log level is enabled.
  45. /// </summary>
  46. /// <param name="logger">The <see cref="ILog"/> to check with.</param>
  47. /// <returns>True if the log level is enabled; false otherwise.</returns>
  48. public static bool IsFatalEnabled(this ILog logger)
  49. {
  50. GuardAgainstNullLogger(logger);
  51. return logger.Log(LogLevel.Fatal, null, null, EmptyParams);
  52. }
  53. /// <summary>
  54. /// Check if the <see cref="LogLevel.Info"/> log level is enabled.
  55. /// </summary>
  56. /// <param name="logger">The <see cref="ILog"/> to check with.</param>
  57. /// <returns>True if the log level is enabled; false otherwise.</returns>
  58. public static bool IsInfoEnabled(this ILog logger)
  59. {
  60. GuardAgainstNullLogger(logger);
  61. return logger.Log(LogLevel.Info, null, null, EmptyParams);
  62. }
  63. /// <summary>
  64. /// Check if the <see cref="LogLevel.Trace"/> log level is enabled.
  65. /// </summary>
  66. /// <param name="logger">The <see cref="ILog"/> to check with.</param>
  67. /// <returns>True if the log level is enabled; false otherwise.</returns>
  68. public static bool IsTraceEnabled(this ILog logger)
  69. {
  70. GuardAgainstNullLogger(logger);
  71. return logger.Log(LogLevel.Trace, null, null, EmptyParams);
  72. }
  73. /// <summary>
  74. /// Check if the <see cref="LogLevel.Warn"/> log level is enabled.
  75. /// </summary>
  76. /// <param name="logger">The <see cref="ILog"/> to check with.</param>
  77. /// <returns>True if the log level is enabled; false otherwise.</returns>
  78. public static bool IsWarnEnabled(this ILog logger)
  79. {
  80. GuardAgainstNullLogger(logger);
  81. return logger.Log(LogLevel.Warn, null, null, EmptyParams);
  82. }
  83. /// <summary>
  84. /// Logs a message at the <see cref="LogLevel.Debug"/> log level, if enabled.
  85. /// </summary>
  86. /// <param name="logger">The <see cref="ILog"/> to use.</param>
  87. /// <param name="messageFunc">The message function.</param>
  88. public static void Debug(this ILog logger, Func<string> messageFunc)
  89. {
  90. GuardAgainstNullLogger(logger);
  91. logger.Log(LogLevel.Debug, WrapLogInternal(messageFunc), null, EmptyParams);
  92. }
  93. /// <summary>
  94. /// Logs a message at the <see cref="LogLevel.Debug"/> log level, if enabled.
  95. /// </summary>
  96. /// <param name="logger">The <see cref="ILog"/> to use.</param>
  97. /// <param name="message">The message.</param>
  98. public static void Debug(this ILog logger, string message)
  99. {
  100. if (logger.IsDebugEnabled()) logger.Log(LogLevel.Debug, message.AsFunc(), null, EmptyParams);
  101. }
  102. /// <summary>
  103. /// Logs a message at the <see cref="LogLevel.Debug"/> log level, if enabled.
  104. /// </summary>
  105. /// <param name="logger">The <see cref="ILog"/> to use.</param>
  106. /// <param name="message">The message.</param>
  107. /// <param name="args">Optional format parameters for the message.</param>
  108. public static void Debug(this ILog logger, string message, params object[] args)
  109. {
  110. logger.DebugFormat(message, args);
  111. }
  112. /// <summary>
  113. /// Logs an exception at the <see cref="LogLevel.Debug"/> log level, if enabled.
  114. /// </summary>
  115. /// <param name="logger">The <see cref="ILog"/> to use.</param>
  116. /// <param name="exception">The exception.</param>
  117. /// <param name="message">The message.</param>
  118. /// <param name="args">Optional format parameters for the message.</param>
  119. public static void Debug(this ILog logger, Exception exception, string message, params object[] args)
  120. {
  121. logger.DebugException(message, exception, args);
  122. }
  123. /// <summary>
  124. /// Logs a message at the <see cref="LogLevel.Debug"/> log level, if enabled.
  125. /// </summary>
  126. /// <param name="logger">The <see cref="ILog"/> to use.</param>
  127. /// <param name="message">The message.</param>
  128. /// <param name="args">Optional format parameters for the message.</param>
  129. public static void DebugFormat(this ILog logger, string message, params object[] args)
  130. {
  131. if (logger.IsDebugEnabled()) logger.LogFormat(LogLevel.Debug, message, args);
  132. }
  133. /// <summary>
  134. /// Logs an exception at the <see cref="LogLevel.Debug"/> log level, if enabled.
  135. /// </summary>
  136. /// <param name="logger">The <see cref="ILog"/> to use.</param>
  137. /// <param name="message">The message.</param>
  138. /// <param name="exception">The exception.</param>
  139. public static void DebugException(this ILog logger, string message, Exception exception)
  140. {
  141. if (logger.IsDebugEnabled()) logger.Log(LogLevel.Debug, message.AsFunc(), exception, EmptyParams);
  142. }
  143. /// <summary>
  144. /// Logs an exception at the <see cref="LogLevel.Debug"/> log level, if enabled.
  145. /// </summary>
  146. /// <param name="logger">The <see cref="ILog"/> to use.</param>
  147. /// <param name="message">The message.</param>
  148. /// <param name="exception">The exception.</param>
  149. /// <param name="args">Optional format parameters for the message.</param>
  150. public static void DebugException(this ILog logger, string message, Exception exception,
  151. params object[] args)
  152. {
  153. if (logger.IsDebugEnabled()) logger.Log(LogLevel.Debug, message.AsFunc(), exception, args);
  154. }
  155. /// <summary>
  156. /// Logs a message at the <see cref="LogLevel.Error"/> log level, if enabled.
  157. /// </summary>
  158. /// <param name="logger">The <see cref="ILog"/> to use.</param>
  159. /// <param name="messageFunc">The message function.</param>
  160. public static void Error(this ILog logger, Func<string> messageFunc)
  161. {
  162. GuardAgainstNullLogger(logger);
  163. logger.Log(LogLevel.Error, WrapLogInternal(messageFunc), null, EmptyParams);
  164. }
  165. /// <summary>
  166. /// Logs a message at the <see cref="LogLevel.Error"/> log level, if enabled.
  167. /// </summary>
  168. /// <param name="logger">The <see cref="ILog"/> to use.</param>
  169. /// <param name="message">The message.</param>
  170. public static void Error(this ILog logger, string message)
  171. {
  172. if (logger.IsErrorEnabled()) logger.Log(LogLevel.Error, message.AsFunc(), null, EmptyParams);
  173. }
  174. /// <summary>
  175. /// Logs a message at the <see cref="LogLevel.Error"/> log level, if enabled.
  176. /// </summary>
  177. /// <param name="logger">The <see cref="ILog"/> to use.</param>
  178. /// <param name="message">The message.</param>
  179. /// <param name="args">Optional format parameters for the message.</param>
  180. public static void Error(this ILog logger, string message, params object[] args)
  181. {
  182. logger.ErrorFormat(message, args);
  183. }
  184. /// <summary>
  185. /// Logs an exception at the <see cref="LogLevel.Error"/> log level, if enabled.
  186. /// </summary>
  187. /// <param name="logger">The <see cref="ILog"/> to use.</param>
  188. /// <param name="exception">The exception.</param>
  189. /// <param name="message">The message.</param>
  190. /// <param name="args">Optional format parameters for the message.</param>
  191. public static void Error(this ILog logger, Exception exception, string message, params object[] args)
  192. {
  193. logger.ErrorException(message, exception, args);
  194. }
  195. /// <summary>
  196. /// Logs a message at the <see cref="LogLevel.Error"/> log level, if enabled.
  197. /// </summary>
  198. /// <param name="logger">The <see cref="ILog"/> to use.</param>
  199. /// <param name="message">The message.</param>
  200. /// <param name="args">Optional format parameters for the message.</param>
  201. public static void ErrorFormat(this ILog logger, string message, params object[] args)
  202. {
  203. if (logger.IsErrorEnabled()) logger.LogFormat(LogLevel.Error, message, args);
  204. }
  205. /// <summary>
  206. /// Logs an exception at the <see cref="LogLevel.Error"/> log level, if enabled.
  207. /// </summary>
  208. /// <param name="logger">The <see cref="ILog"/> to use.</param>
  209. /// <param name="message">The message.</param>
  210. /// <param name="exception">The exception.</param>
  211. /// <param name="args">Optional format parameters for the message.</param>
  212. public static void ErrorException(this ILog logger, string message, Exception exception,
  213. params object[] args)
  214. {
  215. if (logger.IsErrorEnabled()) logger.Log(LogLevel.Error, message.AsFunc(), exception, args);
  216. }
  217. /// <summary>
  218. /// Logs a message at the <see cref="LogLevel.Fatal"/> log level, if enabled.
  219. /// </summary>
  220. /// <param name="logger">The <see cref="ILog"/> to use.</param>
  221. /// <param name="messageFunc">The message function.</param>
  222. public static void Fatal(this ILog logger, Func<string> messageFunc)
  223. {
  224. logger.Log(LogLevel.Fatal, WrapLogInternal(messageFunc), null, EmptyParams);
  225. }
  226. /// <summary>
  227. /// Logs a message at the <see cref="LogLevel.Fatal"/> log level, if enabled.
  228. /// </summary>
  229. /// <param name="logger">The <see cref="ILog"/> to use.</param>
  230. /// <param name="message">The message.</param>
  231. public static void Fatal(this ILog logger, string message)
  232. {
  233. if (logger.IsFatalEnabled()) logger.Log(LogLevel.Fatal, message.AsFunc(), null, EmptyParams);
  234. }
  235. /// <summary>
  236. /// Logs a message at the <see cref="LogLevel.Fatal"/> log level, if enabled.
  237. /// </summary>
  238. /// <param name="logger">The <see cref="ILog"/> to use.</param>
  239. /// <param name="message">The message.</param>
  240. /// <param name="args">Optional format parameters for the message.</param>
  241. public static void Fatal(this ILog logger, string message, params object[] args)
  242. {
  243. logger.FatalFormat(message, args);
  244. }
  245. /// <summary>
  246. /// Logs an exception at the <see cref="LogLevel.Fatal"/> log level, if enabled.
  247. /// </summary>
  248. /// <param name="logger">The <see cref="ILog"/> to use.</param>
  249. /// <param name="exception">The exception.</param>
  250. /// <param name="message">The message.</param>
  251. /// <param name="args">Optional format parameters for the message.</param>
  252. public static void Fatal(this ILog logger, Exception exception, string message, params object[] args)
  253. {
  254. logger.FatalException(message, exception, args);
  255. }
  256. /// <summary>
  257. /// Logs a message at the <see cref="LogLevel.Fatal"/> log level, if enabled.
  258. /// </summary>
  259. /// <param name="logger">The <see cref="ILog"/> to use.</param>
  260. /// <param name="message">The message.</param>
  261. /// <param name="args">Optional format parameters for the message.</param>
  262. public static void FatalFormat(this ILog logger, string message, params object[] args)
  263. {
  264. if (logger.IsFatalEnabled()) logger.LogFormat(LogLevel.Fatal, message, args);
  265. }
  266. /// <summary>
  267. /// Logs an exception at the <see cref="LogLevel.Fatal"/> log level, if enabled.
  268. /// </summary>
  269. /// <param name="logger">The <see cref="ILog"/> to use.</param>
  270. /// <param name="message">The message.</param>
  271. /// <param name="exception">The exception.</param>
  272. /// <param name="args">Optional format parameters for the message.</param>
  273. public static void FatalException(this ILog logger, string message, Exception exception,
  274. params object[] args)
  275. {
  276. if (logger.IsFatalEnabled()) logger.Log(LogLevel.Fatal, message.AsFunc(), exception, args);
  277. }
  278. /// <summary>
  279. /// Logs a message at the <see cref="LogLevel.Info"/> log level, if enabled.
  280. /// </summary>
  281. /// <param name="logger">The <see cref="ILog"/> to use.</param>
  282. /// <param name="messageFunc">The message function.</param>
  283. public static void Info(this ILog logger, Func<string> messageFunc)
  284. {
  285. GuardAgainstNullLogger(logger);
  286. logger.Log(LogLevel.Info, WrapLogInternal(messageFunc), null, EmptyParams);
  287. }
  288. /// <summary>
  289. /// Logs a message at the <see cref="LogLevel.Info"/> log level, if enabled.
  290. /// </summary>
  291. /// <param name="logger">The <see cref="ILog"/> to use.</param>
  292. /// <param name="message">The message.</param>
  293. public static void Info(this ILog logger, string message)
  294. {
  295. if (logger.IsInfoEnabled()) logger.Log(LogLevel.Info, message.AsFunc(), null, EmptyParams);
  296. }
  297. /// <summary>
  298. /// Logs a message at the <see cref="LogLevel.Info"/> log level, if enabled.
  299. /// </summary>
  300. /// <param name="logger">The <see cref="ILog"/> to use.</param>
  301. /// <param name="message">The message.</param>
  302. /// <param name="args">Optional format parameters for the message.</param>
  303. public static void Info(this ILog logger, string message, params object[] args)
  304. {
  305. logger.InfoFormat(message, args);
  306. }
  307. /// <summary>
  308. /// Logs an exception at the <see cref="LogLevel.Info"/> log level, if enabled.
  309. /// </summary>
  310. /// <param name="logger">The <see cref="ILog"/> to use.</param>
  311. /// <param name="exception">The exception.</param>
  312. /// <param name="message">The message.</param>
  313. /// <param name="args">Optional format parameters for the message.</param>
  314. public static void Info(this ILog logger, Exception exception, string message, params object[] args)
  315. {
  316. logger.InfoException(message, exception, args);
  317. }
  318. /// <summary>
  319. /// Logs a message at the <see cref="LogLevel.Info"/> log level, if enabled.
  320. /// </summary>
  321. /// <param name="logger">The <see cref="ILog"/> to use.</param>
  322. /// <param name="message">The message.</param>
  323. /// <param name="args">Optional format parameters for the message.</param>
  324. public static void InfoFormat(this ILog logger, string message, params object[] args)
  325. {
  326. if (logger.IsInfoEnabled()) logger.LogFormat(LogLevel.Info, message, args);
  327. }
  328. /// <summary>
  329. /// Logs an exception at the <see cref="LogLevel.Info"/> log level, if enabled.
  330. /// </summary>
  331. /// <param name="logger">The <see cref="ILog"/> to use.</param>
  332. /// <param name="message">The message.</param>
  333. /// <param name="exception">The exception.</param>
  334. /// <param name="args">Optional format parameters for the message.</param>
  335. public static void InfoException(this ILog logger, string message, Exception exception,
  336. params object[] args)
  337. {
  338. if (logger.IsInfoEnabled()) logger.Log(LogLevel.Info, message.AsFunc(), exception, args);
  339. }
  340. /// <summary>
  341. /// Logs a message at the <see cref="LogLevel.Trace"/> log level, if enabled.
  342. /// </summary>
  343. /// <param name="logger">The <see cref="ILog"/> to use.</param>
  344. /// <param name="messageFunc">The message function.</param>
  345. public static void Trace(this ILog logger, Func<string> messageFunc)
  346. {
  347. GuardAgainstNullLogger(logger);
  348. logger.Log(LogLevel.Trace, WrapLogInternal(messageFunc), null, EmptyParams);
  349. }
  350. /// <summary>
  351. /// Logs a message at the <see cref="LogLevel.Trace"/> log level, if enabled.
  352. /// </summary>
  353. /// <param name="logger">The <see cref="ILog"/> to use.</param>
  354. /// <param name="message">The message.</param>
  355. public static void Trace(this ILog logger, string message)
  356. {
  357. if (logger.IsTraceEnabled()) logger.Log(LogLevel.Trace, message.AsFunc(), null, EmptyParams);
  358. }
  359. /// <summary>
  360. /// Logs a message at the <see cref="LogLevel.Trace"/> log level, if enabled.
  361. /// </summary>
  362. /// <param name="logger">The <see cref="ILog"/> to use.</param>
  363. /// <param name="message">The message.</param>
  364. /// <param name="args">Optional format parameters for the message.</param>
  365. public static void Trace(this ILog logger, string message, params object[] args)
  366. {
  367. logger.TraceFormat(message, args);
  368. }
  369. /// <summary>
  370. /// Logs an exception at the <see cref="LogLevel.Trace"/> log level, if enabled.
  371. /// </summary>
  372. /// <param name="logger">The <see cref="ILog"/> to use.</param>
  373. /// <param name="exception">The exception.</param>
  374. /// <param name="message">The message.</param>
  375. /// <param name="args">Optional format parameters for the message.</param>
  376. public static void Trace(this ILog logger, Exception exception, string message, params object[] args)
  377. {
  378. logger.TraceException(message, exception, args);
  379. }
  380. /// <summary>
  381. /// Logs a message at the <see cref="LogLevel.Trace"/> log level, if enabled.
  382. /// </summary>
  383. /// <param name="logger">The <see cref="ILog"/> to use.</param>
  384. /// <param name="message">The message.</param>
  385. /// <param name="args">Optional format parameters for the message.</param>
  386. public static void TraceFormat(this ILog logger, string message, params object[] args)
  387. {
  388. if (logger.IsTraceEnabled()) logger.LogFormat(LogLevel.Trace, message, args);
  389. }
  390. /// <summary>
  391. /// Logs an exception at the <see cref="LogLevel.Trace"/> log level, if enabled.
  392. /// </summary>
  393. /// <param name="logger">The <see cref="ILog"/> to use.</param>
  394. /// <param name="message">The message.</param>
  395. /// <param name="exception">The exception.</param>
  396. /// <param name="args">Optional format parameters for the message.</param>
  397. public static void TraceException(this ILog logger, string message, Exception exception,
  398. params object[] args)
  399. {
  400. if (logger.IsTraceEnabled()) logger.Log(LogLevel.Trace, message.AsFunc(), exception, args);
  401. }
  402. /// <summary>
  403. /// Logs a message at the <see cref="LogLevel.Warn"/> log level, if enabled.
  404. /// </summary>
  405. /// <param name="logger">The <see cref="ILog"/> to use.</param>
  406. /// <param name="messageFunc">The message function.</param>
  407. public static void Warn(this ILog logger, Func<string> messageFunc)
  408. {
  409. GuardAgainstNullLogger(logger);
  410. logger.Log(LogLevel.Warn, WrapLogInternal(messageFunc), null, EmptyParams);
  411. }
  412. /// <summary>
  413. /// Logs a message at the <see cref="LogLevel.Warn"/> log level, if enabled.
  414. /// </summary>
  415. /// <param name="logger">The <see cref="ILog"/> to use.</param>
  416. /// <param name="message">The message.</param>
  417. public static void Warn(this ILog logger, string message)
  418. {
  419. if (logger.IsWarnEnabled()) logger.Log(LogLevel.Warn, message.AsFunc(), null, EmptyParams);
  420. }
  421. /// <summary>
  422. /// Logs a message at the <see cref="LogLevel.Warn"/> log level, if enabled.
  423. /// </summary>
  424. /// <param name="logger">The <see cref="ILog"/> to use.</param>
  425. /// <param name="message">The message.</param>
  426. /// <param name="args">Optional format parameters for the message.</param>
  427. public static void Warn(this ILog logger, string message, params object[] args)
  428. {
  429. logger.WarnFormat(message, args);
  430. }
  431. /// <summary>
  432. /// Logs an exception at the <see cref="LogLevel.Warn"/> log level, if enabled.
  433. /// </summary>
  434. /// <param name="logger">The <see cref="ILog"/> to use.</param>
  435. /// <param name="exception">The exception.</param>
  436. /// <param name="message">The message.</param>
  437. /// <param name="args">Optional format parameters for the message.</param>
  438. public static void Warn(this ILog logger, Exception exception, string message, params object[] args)
  439. {
  440. logger.WarnException(message, exception, args);
  441. }
  442. /// <summary>
  443. /// Logs a message at the <see cref="LogLevel.Warn"/> log level, if enabled.
  444. /// </summary>
  445. /// <param name="logger">The <see cref="ILog"/> to use.</param>
  446. /// <param name="message">The message.</param>
  447. /// <param name="args">Optional format parameters for the message.</param>
  448. public static void WarnFormat(this ILog logger, string message, params object[] args)
  449. {
  450. if (logger.IsWarnEnabled()) logger.LogFormat(LogLevel.Warn, message, args);
  451. }
  452. /// <summary>
  453. /// Logs an exception at the <see cref="LogLevel.Warn"/> log level, if enabled.
  454. /// </summary>
  455. /// <param name="logger">The <see cref="ILog"/> to use.</param>
  456. /// <param name="message">The message.</param>
  457. /// <param name="exception">The exception.</param>
  458. /// <param name="args">Optional format parameters for the message.</param>
  459. public static void WarnException(this ILog logger, string message, Exception exception,
  460. params object[] args)
  461. {
  462. if (logger.IsWarnEnabled()) logger.Log(LogLevel.Warn, message.AsFunc(), exception, args);
  463. }
  464. // ReSharper disable once UnusedParameter.Local
  465. private static void GuardAgainstNullLogger(ILog logger)
  466. {
  467. if (logger == null) throw new ArgumentNullException("logger");
  468. }
  469. private static void LogFormat(this ILog logger, LogLevel logLevel, string message, params object[] args)
  470. {
  471. logger.Log(logLevel, message.AsFunc(), null, args);
  472. }
  473. // Avoid the closure allocation, see https://gist.github.com/AArnott/d285feef75c18f6ecd2b
  474. private static Func<T> AsFunc<T>(this T value) where T : class
  475. {
  476. return value.Return;
  477. }
  478. private static T Return<T>(this T value)
  479. {
  480. return value;
  481. }
  482. // Allow passing callsite-logger-type to LogProviderBase using messageFunc
  483. internal static Func<string> WrapLogSafeInternal(LoggerExecutionWrapper logger, Func<string> messageFunc)
  484. {
  485. var WrappedMessageFunc = new Func<string>(() => {
  486. try
  487. {
  488. return messageFunc();
  489. }
  490. catch (Exception ex)
  491. {
  492. logger.WrappedLogger(LogLevel.Error, () => LoggerExecutionWrapper.FailedToGenerateLogMessage, ex,
  493. EmptyParams);
  494. }
  495. return null;
  496. });
  497. return WrappedMessageFunc;
  498. }
  499. // Allow passing callsite-logger-type to LogProviderBase using messageFunc
  500. private static Func<string> WrapLogInternal(Func<string> messageFunc)
  501. {
  502. var WrappedMessageFunc = new Func<string>(() =>
  503. {
  504. return messageFunc();
  505. });
  506. return WrappedMessageFunc;
  507. }
  508. }
  509. }