示例#1
0
 	// Constructs a LogSwitch.  A LogSwitch is used to categorize log messages.
 	// 
 	// All switches (except for the global LogSwitch) have a parent LogSwitch.
 	//
 	/// <include file='doc\LogSwitch.uex' path='docs/doc[@for="LogSwitch.LogSwitch"]/*' />
 	public LogSwitch(String name, String description, LogSwitch parent)
 	{
 		if ((name != null) && (parent != null) )
 		{
 			if (name.Length == 0)
 				throw new ArgumentOutOfRangeException (
 				"Name", Environment.GetResourceString(
 					"Namelength_0"));
 				
 			strName = name;
 			strDescription = description;
 			iLevel = LoggingLevels.ErrorLevel;
 			iOldLevel = iLevel;
 
 			// update the parent switch to reflect this child switch
 			parent.AddChildSwitch (this);
 
 			ParentSwitch = parent;
 
 			ChildSwitch  = null;
 			iNumChildren = 0;
 			iChildArraySize = 0;
 
 			Log.m_Hashtable.Add (strName, this);			
 
 			// Call into the EE to let it know about the creation of
 			// this switch
 			Log.AddLogSwitch (this);
 
 			// update switch count
 			Log.iNumOfSwitches++;
 		}
 		else
 			throw new ArgumentNullException ((name==null ? "name" : "parent"));
 	}
示例#2
0
 internal static void InvokeLogSwitchLevelHandlers(LogSwitch ls, LoggingLevels newLevel)
 {
     LogSwitchLevelHandler handler = _LogSwitchLevelHandler;
     if (handler != null)
     {
         handler(ls, newLevel);
     }
 }
 internal LogSwitch(string name, string description)
 {
     this.strName = name;
     this.strDescription = description;
     this.iLevel = LoggingLevels.ErrorLevel;
     this.iOldLevel = this.iLevel;
     this.ParentSwitch = null;
     this.ChildSwitch = null;
     this.iNumChildren = 0;
     this.iChildArraySize = 0;
     Log.m_Hashtable.Add(this.strName, this);
     Log.AddLogSwitch(this);
     Log.iNumOfSwitches++;
 }
示例#4
0
        [System.Security.SecuritySafeCritical]  // auto-generated
        internal LogSwitch(String name, String description)
        {
            strName = name;
            strDescription = description;
            iLevel = LoggingLevels.ErrorLevel;
            iOldLevel = iLevel;
            ParentSwitch = null;

            Log.m_Hashtable.Add (strName, this); 
    
            // Call into the EE to let it know about the creation of
            // this switch
            Log.AddLogSwitch (this);
        }
示例#5
0
文件: log.cs 项目: ChuangYang/coreclr
     static Log()
     {
         m_Hashtable = new Hashtable();
         m_fConsoleDeviceEnabled = false;
         //pConsole = null;
         //iNumOfMsgHandlers = 0;
         //iMsgHandlerArraySize = 0;
         locker = new Object();
 
         // allocate the GlobalSwitch object
         GlobalSwitch = new LogSwitch ("Global", "Global Switch for this log");
 
         GlobalSwitch.MinimumLevel = LoggingLevels.ErrorLevel;
     }
示例#6
0
 private static bool CheckEnabled(string switchName, LogLevel level, out LogSwitch logSwitch)
 {
     if (AppDomain.CurrentDomain.IsUnloadingForcedFinalize())
     {
         logSwitch = null;
         return false;
     }
     logSwitch = LogSwitch.GetSwitch(switchName);
     if (logSwitch == null)
     {
         return false;
     }
     return (logSwitch.MinimumLevel <= ((LoggingLevels) ((int) level)));
 }
示例#7
0
        [System.Security.SecuritySafeCritical]  // auto-generated
        internal LogSwitch(String name, String description)
        { 
            strName = name;
            strDescription = description; 
            iLevel = LoggingLevels.ErrorLevel; 
            iOldLevel = iLevel;
            ParentSwitch = null; 
            ChildSwitch  = null;
            iNumChildren = 0;
            iChildArraySize = 0;
 
            Log.m_Hashtable.Add (strName, this);
 
            // Call into the EE to let it know about the creation of 
            // this switch
            Log.AddLogSwitch (this); 

            // update switch count
            Log.iNumOfSwitches++;
        } 
示例#8
0
        [System.Security.SecuritySafeCritical]  // auto-generated
        public LogSwitch(String name, String description, LogSwitch parent)
        {
            if (name != null && name.Length == 0)
                throw new ArgumentOutOfRangeException("Name", Environment.GetResourceString("Argument_StringZeroLength"));
            Contract.EndContractBlock();

            if ((name != null) && (parent != null))
            {                    
                strName = name;
                strDescription = description;
                iLevel = LoggingLevels.ErrorLevel;
                iOldLevel = iLevel;
                ParentSwitch = parent;
    
                Log.m_Hashtable.Add (strName, this);
    
                // Call into the EE to let it know about the creation of
                // this switch
                Log.AddLogSwitch (this);
            }
            else
                throw new ArgumentNullException ((name==null ? "name" : "parent"));
        }
 public LogSwitch(string name, string description, LogSwitch parent)
 {
     if ((name != null) && (name.Length == 0))
     {
         throw new ArgumentOutOfRangeException("Name", Environment.GetResourceString("Argument_StringZeroLength"));
     }
     if ((name == null) || (parent == null))
     {
         throw new ArgumentNullException((name == null) ? "name" : "parent");
     }
     this.strName = name;
     this.strDescription = description;
     this.iLevel = LoggingLevels.ErrorLevel;
     this.iOldLevel = this.iLevel;
     parent.AddChildSwitch(this);
     this.ParentSwitch = parent;
     this.ChildSwitch = null;
     this.iNumChildren = 0;
     this.iChildArraySize = 0;
     Log.m_Hashtable.Add(this.strName, this);
     Log.AddLogSwitch(this);
     Log.iNumOfSwitches++;
 }
 private void AddChildSwitch(LogSwitch child)
 {
     if (this.iChildArraySize <= this.iNumChildren)
     {
         int num;
         if (this.iChildArraySize == 0)
         {
             num = 10;
         }
         else
         {
             num = (this.iChildArraySize * 3) / 2;
         }
         LogSwitch[] destinationArray = new LogSwitch[num];
         if (this.iNumChildren > 0)
         {
             Array.Copy(this.ChildSwitch, destinationArray, this.iNumChildren);
         }
         this.iChildArraySize = num;
         this.ChildSwitch = destinationArray;
     }
     this.ChildSwitch[this.iNumChildren++] = child;
 }
 public LogSwitch(string name, string description, LogSwitch parent)
 {
     if ((name != null) && (name.Length == 0))
     {
         throw new ArgumentOutOfRangeException("Name", Environment.GetResourceString("Argument_StringZeroLength"));
     }
     if ((name == null) || (parent == null))
     {
         throw new ArgumentNullException((name == null) ? "name" : "parent");
     }
     this.strName        = name;
     this.strDescription = description;
     this.iLevel         = LoggingLevels.ErrorLevel;
     this.iOldLevel      = this.iLevel;
     parent.AddChildSwitch(this);
     this.ParentSwitch    = parent;
     this.ChildSwitch     = null;
     this.iNumChildren    = 0;
     this.iChildArraySize = 0;
     Log.m_Hashtable.Add(this.strName, this);
     Log.AddLogSwitch(this);
     Log.iNumOfSwitches++;
 }
示例#12
0

        
        // Constructs a LogSwitch.  A LogSwitch is used to categorize log messages.
        //
        // All switches (except for the global LogSwitch) have a parent LogSwitch.
        //
        public LogSwitch(String name, String description, LogSwitch parent)
        {
            if ((name != null) && (parent != null))
            {
                if (name.Length == 0)
                {
                    throw new ArgumentOutOfRangeException("Name", Environment.GetResourceString("Argument_StringZeroLength"));
                }

                strName        = name;
                strDescription = description;
                iLevel         = LoggingLevels.ErrorLevel;
                iOldLevel      = iLevel;

                // update the parent switch to reflect this child switch
                parent.AddChildSwitch(this);

                ParentSwitch = parent;

                ChildSwitch     = null;
                iNumChildren    = 0;
                iChildArraySize = 0;

                Log.m_Hashtable.Add(strName, this);

                // Call into the EE to let it know about the creation of
                // this switch
                Log.AddLogSwitch(this);

                // update switch count
                Log.iNumOfSwitches++;
            }
            else
            {
                throw new ArgumentNullException((name == null ? "name" : "parent"));
            }
        }
示例#14
0
        // Generates a log message. If its switch (or a parent switch) allows the
        // level for the message, it is "broadcast" to all of the log
        // devices.
        //
        /// <include file='doc\log.uex' path='docs/doc[@for="Log.LogMessage1"]/*' />
        public static void LogMessage(LoggingLevels level, LogSwitch logswitch, String message)
        {
            if (logswitch == null)
            {
                throw new ArgumentNullException("LogSwitch");
            }

            if (level < 0)
            {
                throw new ArgumentOutOfRangeException("level", Environment.GetResourceString("ArgumentOutOfRange_NeedNonNegNum"));
            }

            // Is logging for this level for this switch enabled?
            if (logswitch.CheckLevel(level) == true)
            {
                // Send message for logging

                // first send it to the debugger
                // @COOLPORT: Why This cast?
                Debugger.Log((int)level, logswitch.strName, message);

                // Send to the console device
                if (m_fConsoleDeviceEnabled)
                {
                    Console.Write(message);
                }

                // Send it to the streams
                for (int i = 0; i < m_iNumOfStreamDevices; i++)
                {
                    StreamWriter sw = new StreamWriter(m_rgStream[i]);
                    sw.Write(message);
                    sw.Flush();
                }
            }
        }
示例#15
0
文件: log.cs 项目: ChuangYang/coreclr
 internal static extern void AddLogSwitch(LogSwitch logSwitch);
示例#16
0
 private static void CheckRegistry()
 {
     if (!AppDomain.CurrentDomain.IsUnloadingForcedFinalize() && !m_registryChecked)
     {
         bool flag;
         bool flag2;
         int num;
         m_registryChecked = true;
         int num2 = GetRegistryLoggingValues(out flag, out flag2, out num, out m_perfWarnings, out m_correctnessWarnings, out m_safeHandleStackTraces);
         if (!flag)
         {
             m_loggingNotEnabled = true;
         }
         if (flag && (levelConversions != null))
         {
             try
             {
                 num = (int) levelConversions[num];
                 if (num2 > 0)
                 {
                     for (int i = 0; i < switches.Length; i++)
                     {
                         if ((switches[i].value & num2) != 0)
                         {
                             LogSwitch switch2 = new LogSwitch(switches[i].name, switches[i].name, System.Diagnostics.Log.GlobalSwitch) {
                                 MinimumLevel = (LoggingLevels) num
                             };
                         }
                     }
                     System.Diagnostics.Log.GlobalSwitch.MinimumLevel = (LoggingLevels) num;
                     System.Diagnostics.Log.IsConsoleEnabled = flag2;
                 }
             }
             catch
             {
             }
         }
     }
 }
示例#17
0
文件: log.cs 项目: ChuangYang/coreclr
 public static void Warning(LogSwitch logswitch, String message)
 {
     LogMessage (LoggingLevels.WarningLevel, logswitch, message);
 }
示例#18
0
文件: log.cs 项目: ChuangYang/coreclr
 public static void Error(LogSwitch logswitch, String message)
 {
     LogMessage (LoggingLevels.ErrorLevel, logswitch, message);
 }
示例#19
0
文件: log.cs 项目: ChuangYang/coreclr
 /*
 * Following are convenience entry points; all go through Log()
 * Note that the (Switch switch, String message) variations 
 * are preferred.
 */
 public static void Trace(LogSwitch logswitch, String message)
 {
     LogMessage (LoggingLevels.TraceLevel0, logswitch, message);
 }
示例#20
0
文件: log.cs 项目: ChuangYang/coreclr
 public static void Status(LogSwitch logswitch, String message)
 {
     LogMessage (LoggingLevels.StatusLevel0, logswitch, message);
 }
示例#21
0
文件: log.cs 项目: ydunk/masters
 /*
  * Following are convenience entry points; all go through Log()
  * Note that the (Switch switch, String message) variations
  * are preferred.
  */
 /// <include file='doc\log.uex' path='docs/doc[@for="Log.Trace"]/*' />
 public static void Trace(LogSwitch logswitch, String message)
 {
     LogMessage(LoggingLevels.TraceLevel0, logswitch, message);
 }
示例#22
0
文件: log.cs 项目: ArildF/masters
 	internal static void InvokeLogSwitchLevelHandlers (LogSwitch ls, LoggingLevels newLevel)
 	{
 		if (_LogSwitchLevelHandler != null)
 			_LogSwitchLevelHandler(ls, newLevel);
 	}
示例#23
0
 public static void Trace(string switchname, string message)
 {
     Log.LogMessage(LoggingLevels.TraceLevel0, LogSwitch.GetSwitch(switchname), message);
 }
示例#24
0
 public static void Error(string switchname, string message)
 {
     Log.LogMessage(LoggingLevels.ErrorLevel, LogSwitch.GetSwitch(switchname), message);
 }
示例#25
0
文件: log.cs 项目: ydunk/masters
 /// <include file='doc\log.uex' path='docs/doc[@for="Log.Panic"]/*' />
 public static void Panic(LogSwitch logswitch, String message)
 {
     LogMessage(LoggingLevels.PanicLevel, logswitch, message);
 }
示例#26
0
文件: log.cs 项目: ydunk/masters
 /// <include file='doc\log.uex' path='docs/doc[@for="Log.Warning"]/*' />
 public static void Warning(LogSwitch logswitch, String message)
 {
     LogMessage(LoggingLevels.WarningLevel, logswitch, message);
 }
示例#27
0
        private static bool CheckEnabled(String switchName, LogLevel level, out LogSwitch logSwitch) {
#if WIN32
			if (AppDomain.CurrentDomain.IsUnloadingForcedFinalize())
			{
				logSwitch = null;
				return false;
			}
            logSwitch = LogSwitch.GetSwitch(switchName);
            if (logSwitch==null) {
                return false;
            }
            return ((int)logSwitch.MinimumLevel<=(int)level);
#else 
            logSwitch = null;
            return false;
#endif // WIN32
        }
示例#28
0
文件: log.cs 项目: ArildF/masters
 	/// <include file='doc\log.uex' path='docs/doc[@for="Log.Panic"]/*' />
 	public static void Panic(LogSwitch logswitch, String message)
 	{
 		LogMessage (LoggingLevels.PanicLevel, logswitch, message);
 	}
示例#29
0
文件: log.cs 项目: ArildF/masters
 	// Generates a log message. If its switch (or a parent switch) allows the 
 	// level for the message, it is "broadcast" to all of the log
 	// devices.
 	// 
 	/// <include file='doc\log.uex' path='docs/doc[@for="Log.LogMessage1"]/*' />
 	public static void LogMessage(LoggingLevels level, LogSwitch logswitch, String message)
 	{
 		if (logswitch == null)
 			throw new ArgumentNullException ("LogSwitch");
 
 		if (level < 0)
 			throw new ArgumentOutOfRangeException("level", Environment.GetResourceString("ArgumentOutOfRange_NeedNonNegNum"));
 
 		// Is logging for this level for this switch enabled?
 		if (logswitch.CheckLevel (level) == true)
 		{
 			// Send message for logging
 			
 			// first send it to the debugger
 			Debugger.Log ((int) level, logswitch.strName, message);
 
 			// Send to the console device
 			if (m_fConsoleDeviceEnabled)
 			{
 				Console.Write(message);				
 			}
 
 			// Send it to the streams
 			for (int i=0; i<m_iNumOfStreamDevices; i++)
 			{
                 StreamWriter sw = new StreamWriter(m_rgStream[i]);
                 sw.Write(message);
                 sw.Flush();
 			}
 		}
 	}
示例#30
0
 public static void Status(string switchname, string message)
 {
     Log.LogMessage(LoggingLevels.StatusLevel0, LogSwitch.GetSwitch(switchname), message);
 }
示例#31
0
        // Token: 0x06003229 RID: 12841 RVA: 0x000C06F4 File Offset: 0x000BE8F4
        public static void Warning(string switchname, string message)
        {
            LogSwitch @switch = LogSwitch.GetSwitch(switchname);

            Log.LogMessage(LoggingLevels.WarningLevel, @switch, message);
        }
示例#32
0
        private static void CheckRegistry() {
            if (AppDomain.CurrentDomain.IsUnloadingForcedFinalize())
                return;
            if (m_registryChecked) {
                return;
            }
            
            m_registryChecked = true;

            bool loggingEnabled;
            bool logToConsole;
            int  logLevel;
            int  facilityValue;
            facilityValue = GetRegistryLoggingValues(out loggingEnabled, out logToConsole, out logLevel, out m_perfWarnings, out m_correctnessWarnings, out m_safeHandleStackTraces);

            // Note we can get into some recursive situations where we call
            // ourseves recursively through the .cctor.  That's why we have the 
            // check for levelConversions == null.
            if (!loggingEnabled) {
                m_loggingNotEnabled = true;
            }
            if (loggingEnabled && levelConversions!=null) {
                try {
                    //The values returned for the logging levels in the registry don't map nicely onto the
                    //values which we support internally (which are an approximation of the ones that 
                    //the System.Diagnostics namespace uses) so we have a quick map.
                    Assert(logLevel>=0 && logLevel<=10, "logLevel>=0 && logLevel<=10");
                    logLevel = (int)levelConversions[logLevel];
                
                    if (facilityValue>0) {
                        for (int i=0; i<switches.Length; i++) {
                            if ((switches[i].value & facilityValue)!=0) {
                                LogSwitch L = new LogSwitch(switches[i].name, switches[i].name, System.Diagnostics.Log.GlobalSwitch);
                                L.MinimumLevel = (LoggingLevels)logLevel;
                            }
                        }
                        System.Diagnostics.Log.GlobalSwitch.MinimumLevel = (LoggingLevels)logLevel;
                        System.Diagnostics.Log.IsConsoleEnabled = logToConsole;
                    }
                    
                } catch {
                    //Silently eat any exceptions.
                }
            }
        }
示例#33
0
文件: log.cs 项目: ChuangYang/coreclr
     // Generates a log message. If its switch (or a parent switch) allows the 
     // level for the message, it is "broadcast" to all of the log
     // devices.
     // 
     public static void LogMessage(LoggingLevels level, LogSwitch logswitch, String message)
     {
         if (logswitch == null)
             throw new ArgumentNullException ("LogSwitch");
 
         if (level < 0)
             throw new ArgumentOutOfRangeException("level", Environment.GetResourceString("ArgumentOutOfRange_NeedNonNegNum"));
         Contract.EndContractBlock();
 
         // Is logging for this level for this switch enabled?
         if (logswitch.CheckLevel (level) == true)
         {
             // Send message for logging
             
             // first send it to the debugger
             Debugger.Log ((int) level, logswitch.strName, message);
 
             // Send to the console device
             if (m_fConsoleDeviceEnabled)
             {
                 Console.Write(message);                
             }   
         }
     }
示例#34
0
文件: log.cs 项目: ydunk/masters
 /// <include file='doc\log.uex' path='docs/doc[@for="Log.Status"]/*' />
 public static void Status(LogSwitch logswitch, String message)
 {
     LogMessage(LoggingLevels.StatusLevel0, logswitch, message);
 }
示例#35
0
 public static void LogMessage(LoggingLevels level, LogSwitch logswitch, string message)
 {
     if (logswitch == null)
     {
         throw new ArgumentNullException("LogSwitch");
     }
     if (level < LoggingLevels.TraceLevel0)
     {
         throw new ArgumentOutOfRangeException("level", Environment.GetResourceString("ArgumentOutOfRange_NeedNonNegNum"));
     }
     if (logswitch.CheckLevel(level))
     {
         Debugger.Log((int) level, logswitch.strName, message);
         if (m_fConsoleDeviceEnabled)
         {
             Console.Write(message);
         }
         for (int i = 0; i < m_iNumOfStreamDevices; i++)
         {
             StreamWriter writer = new StreamWriter(m_rgStream[i]);
             writer.Write(message);
             writer.Flush();
         }
     }
 }
示例#36
0
文件: log.cs 项目: ydunk/masters
 /// <include file='doc\log.uex' path='docs/doc[@for="Log.Error"]/*' />
 public static void Error(LogSwitch logswitch, String message)
 {
     LogMessage(LoggingLevels.ErrorLevel, logswitch, message);
 }
示例#37
0
 	private  void AddChildSwitch (LogSwitch child)
 	{
 		if (iChildArraySize <= iNumChildren)
 		{
 				int iIncreasedSize;
 
 				if (iChildArraySize == 0)
 					iIncreasedSize = 10;
 				else
 					iIncreasedSize = (iChildArraySize * 3) / 2;
 
 				// increase child array size in chunks of 4
 				LogSwitch[] newChildSwitchArray = new LogSwitch [iIncreasedSize];
 
 				// copy the old array objects into the new one.
 	            if (iNumChildren > 0) 
 					Array.Copy(ChildSwitch, newChildSwitchArray, iNumChildren);
 
 				iChildArraySize = iIncreasedSize;
 
 		        ChildSwitch = newChildSwitchArray;
 		}
 
 		ChildSwitch [iNumChildren++] = child;			
 	}
示例#38
0
文件: log.cs 项目: ydunk/masters
 internal static extern void AddLogSwitch(LogSwitch logSwitch);
		private static void CheckRegistry()
		{
			if (AppDomain.CurrentDomain.IsUnloadingForcedFinalize())
			{
				return;
			}
			if (BCLDebug.m_registryChecked)
			{
				return;
			}
			BCLDebug.m_registryChecked = true;
			bool flag;
			bool isConsoleEnabled;
			int num;
			int registryLoggingValues = BCLDebug.GetRegistryLoggingValues(out flag, out isConsoleEnabled, out num, out BCLDebug.m_perfWarnings, out BCLDebug.m_correctnessWarnings, out BCLDebug.m_safeHandleStackTraces);
			if (!flag)
			{
				BCLDebug.m_loggingNotEnabled = true;
			}
			if (flag && BCLDebug.levelConversions != null)
			{
				try
				{
					num = (int)BCLDebug.levelConversions[num];
					if (registryLoggingValues > 0)
					{
						for (int i = 0; i < BCLDebug.switches.Length; i++)
						{
							if ((BCLDebug.switches[i].value & registryLoggingValues) != 0)
							{
								LogSwitch logSwitch = new LogSwitch(BCLDebug.switches[i].name, BCLDebug.switches[i].name, System.Diagnostics.Log.GlobalSwitch);
								logSwitch.MinimumLevel = (LoggingLevels)num;
							}
						}
						System.Diagnostics.Log.GlobalSwitch.MinimumLevel = (LoggingLevels)num;
						System.Diagnostics.Log.IsConsoleEnabled = isConsoleEnabled;
					}
				}
				catch
				{
				}
			}
		}