Paradox Game Engine  v1.0.0 beta06
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Events Macros Pages
AssetLoggerExtensions.cs
Go to the documentation of this file.
1 // Copyright (c) 2014 Silicon Studio Corp. (http://siliconstudio.co.jp)
2 // This file is distributed under GPL v3. See LICENSE.md for details.
3 using System;
4 using System.Collections.Generic;
5 
6 using SiliconStudio.Core.Diagnostics;
7 using SiliconStudio.Core.Serialization;
8 
9 namespace SiliconStudio.Assets.Diagnostics
10 {
11  /// <summary>
12  /// Extension to <see cref="Logger"/> for loggin specific error with assets.
13  /// </summary>
14  public static class AssetLoggerExtensions
15  {
16  public static void Error(this ILogger logger, Package package, IContentReference assetReference, AssetMessageCode code, params object[] arguments)
17  {
18  Error(logger, package, assetReference, code, (IEnumerable<IContentReference>)null, arguments);
19  }
20 
21  public static void Error(this ILogger logger, Package package, IContentReference assetReference, AssetMessageCode code, IEnumerable<IContentReference> relatedGuids, params object[] arguments)
22  {
23  Error(logger, package, assetReference, code, relatedGuids, (Exception)null, arguments);
24  }
25 
26  public static void Error(this ILogger logger, Package package, IContentReference assetReference, AssetMessageCode code, IContentReference[] relatedGuids, Exception exception = null)
27  {
28  Error(logger, package, assetReference, code, (IEnumerable<IContentReference>)relatedGuids, exception);
29  }
30 
31  public static void Error(this ILogger logger, Package package, IContentReference assetReference, AssetMessageCode code, IEnumerable<IContentReference> relatedGuids, Exception exception = null)
32  {
33  var logMessage = new AssetLogMessage(package, assetReference, LogMessageType.Error, code) { Exception = exception };
34  if (relatedGuids != null)
35  {
36  logMessage.Related.AddRange(relatedGuids);
37  }
38  logger.Log(logMessage);
39  }
40 
41  public static void Error(this ILogger logger, Package package, IContentReference assetReference, AssetMessageCode code, Exception exception, params object[] arguments)
42  {
43  Error(logger, package, assetReference, code, null, exception, arguments);
44  }
45 
46  public static void Error(this ILogger logger, Package package, IContentReference assetReference, AssetMessageCode code, IEnumerable<IContentReference> relatedGuids, Exception exception, params object[] arguments)
47  {
48  var logMessage = new AssetLogMessage(package, assetReference, LogMessageType.Error, code, arguments) { Exception = exception };
49  if (relatedGuids != null)
50  {
51  logMessage.Related.AddRange(relatedGuids);
52  }
53  logger.Log(logMessage);
54  }
55 
56  public static void Warning(this ILogger logger, Package package, IContentReference assetReference, AssetMessageCode code, IContentReference[] relatedGuids)
57  {
58  Warning(logger, package, assetReference, code, (IEnumerable<IContentReference>)null);
59  }
60 
61  public static void Warning(this ILogger logger, Package package, IContentReference assetReference, AssetMessageCode code, IEnumerable<IContentReference> relatedGuids)
62  {
63  var logMessage = new AssetLogMessage(package, assetReference, LogMessageType.Warning, code);
64  if (relatedGuids != null)
65  {
66  logMessage.Related.AddRange(relatedGuids);
67  }
68  logger.Log(logMessage);
69  }
70 
71  public static void Warning(this ILogger logger, Package package, IContentReference assetReference, AssetMessageCode code, params object[] arguments)
72  {
73  Warning(logger, package, assetReference, code, null, arguments);
74  }
75 
76  public static void Warning(this ILogger logger, Package package, IContentReference assetReference, AssetMessageCode code, IEnumerable<IContentReference> relatedGuids, params object[] arguments)
77  {
78  var logMessage = new AssetLogMessage(package, assetReference, LogMessageType.Warning, code, arguments);
79  if (relatedGuids != null)
80  {
81  logMessage.Related.AddRange(relatedGuids);
82  }
83  logger.Log(logMessage);
84  }
85  }
86 }
static void Warning(this ILogger logger, Package package, IContentReference assetReference, AssetMessageCode code, IEnumerable< IContentReference > relatedGuids)
static void Error(this ILogger logger, Package package, IContentReference assetReference, AssetMessageCode code, IEnumerable< IContentReference > relatedGuids, Exception exception, params object[] arguments)
AssetMessageCode
A message code used by AssetLogMessage to identify an error/warning.
static void Error(this ILogger logger, Package package, IContentReference assetReference, AssetMessageCode code, Exception exception, params object[] arguments)
static void Error(this ILogger logger, Package package, IContentReference assetReference, AssetMessageCode code, IEnumerable< IContentReference > relatedGuids, Exception exception=null)
static void Warning(this ILogger logger, Package package, IContentReference assetReference, AssetMessageCode code, IEnumerable< IContentReference > relatedGuids, params object[] arguments)
Extension to Logger for loggin specific error with assets.
LogMessageType
Type of a LogMessage.
An error message (level 4).
static void Warning(this ILogger logger, Package package, IContentReference assetReference, AssetMessageCode code, params object[] arguments)
static void Warning(this ILogger logger, Package package, IContentReference assetReference, AssetMessageCode code, IContentReference[] relatedGuids)
Provides a specialized LogMessage to give specific information about an asset.
static void Error(this ILogger logger, Package package, IContentReference assetReference, AssetMessageCode code, params object[] arguments)
A package managing assets.
Definition: Package.cs:28
An interface that provides a reference to an asset.
static void Error(this ILogger logger, Package package, IContentReference assetReference, AssetMessageCode code, IContentReference[] relatedGuids, Exception exception=null)
static void Error(this ILogger logger, Package package, IContentReference assetReference, AssetMessageCode code, IEnumerable< IContentReference > relatedGuids, params object[] arguments)
Interface for logging.
Definition: ILogger.cs:8
A warning message (level 3).