// 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"));
}