Advertisement
Guest User

Untitled

a guest
Aug 29th, 2015
72
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 3.77 KB | None | 0 0
  1. public static class Log {
  2. private static Dictionary<Type, ILog> _loggers = new Dictionary<Type, ILog>();
  3. private static bool _logInitialized = false;
  4. private static object _lock = new object();
  5.  
  6. public static string SerializeException(Exception e) {
  7. return SerializeException(e, string.Empty);
  8. }
  9.  
  10. private static string SerializeException(Exception e, string exceptionMessage) {
  11. if (e == null) return string.Empty;
  12.  
  13. exceptionMessage = string.Format(
  14. "{0}{1}{2}n{3}",
  15. exceptionMessage,
  16. (exceptionMessage == string.Empty) ? string.Empty : "nn",
  17. e.Message,
  18. e.StackTrace);
  19.  
  20. if (e.InnerException != null)
  21. exceptionMessage = SerializeException(e.InnerException, exceptionMessage);
  22.  
  23. return exceptionMessage;
  24. }
  25.  
  26. private static ILog getLogger(Type source) {
  27. lock (_lock) {
  28. if (_loggers.ContainsKey(source)) {
  29. return _loggers[source];
  30. }
  31.  
  32. ILog logger = log4net.LogManager.GetLogger(source);
  33. _loggers.Add(source, logger);
  34. return logger;
  35. }
  36. }
  37.  
  38. public static void Debug(object source, object message) {
  39. Debug(source.GetType(), message);
  40. }
  41.  
  42. public static void Debug(Type source, object message) {
  43. getLogger(source).Debug(message);
  44. }
  45.  
  46. public static void Info(object source, object message) {
  47. Info(source.GetType(), message);
  48. }
  49.  
  50. public static void Info(Type source, object message) {
  51. getLogger(source).Info(message);
  52. }
  53.  
  54. private static void initialize() {
  55. XmlConfigurator.Configure();
  56. }
  57.  
  58. public static void EnsureInitialized() {
  59. if (!_logInitialized) {
  60. initialize();
  61. _logInitialized = true;
  62. }
  63. }
  64. }
  65.  
  66. Log.Info(typeof(Program).Name, "System Start");
  67.  
  68. LogEventInfo logEvent = new LogEventInfo(level, _logger.Name, null, "{0}", new object[] { message }, exception);
  69.  
  70. _logger.Log(declaringType, logEvent);
  71.  
  72. private readonly static Type declaringType = typeof(AbstractLogger);
  73.  
  74. private readonly static Type declaringType = typeof(Log);
  75.  
  76. _logger.Log(declaringType, level, message, exception);
  77.  
  78. public static void Debug(object message)
  79. {
  80. MethodBase mb = GetCallingMethod();
  81. Type t = mb.DeclaringType;
  82. LogEventInfo logEvent = new LogEventInfo(LogLevel.Debug, t.Name, null, "{0}", new object [] message, null);
  83. ILogger logger = getLogger(t) As ILogger;
  84. logger.Log(declaringType, logEvent)
  85. }
  86.  
  87. private static readonly log4net.ILog log = log4net.LogManager.GetLogger(
  88. System.Reflection.MethodBase.GetCurrentMethod().DeclaringType);
  89.  
  90. private static readonly NLog.logger log = NLog.LogManager.GetCurrentClassLogger();
  91.  
  92. class MyClass
  93. {
  94. private static readonly ILog logger = LogManager.GetLogger(typeof(MyClass));
  95.  
  96. void SomeMethod(...)
  97. {
  98. logger.Info("some message");
  99.  
  100. ...
  101.  
  102. if (logger.IsInfoEnabled)
  103. {
  104. logger.Info(... something that is expensive to generate ...);
  105. }
  106. }
  107.  
  108. }
  109.  
  110. class Stuff
  111. {
  112. private static readonly Logger logger = LogManager.GetCurrentClassLogger();
  113.  
  114. // ...
  115.  
  116. void DoStuff()
  117. {
  118. logger.Info("blah blah");
  119. }
  120. }
  121.  
  122. public static void InfoWithCallerInfo(this ILog logger,
  123. object message, Exception e = null, [CallerMemberName] string memberName = "",
  124. [CallerFilePath] string sourceFilePath = "", [CallerLineNumber] int sourceLineNumber = 0)
  125. {
  126. if (!logger.IsInfoEnabled)
  127. return;
  128. if (e == null)
  129. logger.Info(string.Format("{0}:{1}:{2} {3}", sourceFilePath,
  130. memberName, sourceLineNumber, message));
  131. else
  132. logger.Info(string.Format("{0}:{1}:{2} {3}", sourceFilePath,
  133. memberName, sourceLineNumber, message), e);
  134. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement