Beispiel #1
0
 internal void Inherit(Level level, OutputType outType, ProgressOutputType progressOutType, TextWriter outputWriter)
 {
     mInheritedLevel              = level;
     mInheritedOutputType         = outType;
     mInheritedProgressOutputType = progressOutType;
     mInheritedOutputWriter       = outputWriter;
 }
Beispiel #2
0
 private Logger(string name, Level level, OutputType outType, ProgressOutputType progressOutType, Node node)
 {
     mName = name;
     mInheritedLevel = level;
     mInheritedOutputType = outType;
     mInheritedProgressOutputType = progressOutType;
     mNode = node;
 }
Beispiel #3
0
 private Logger(string name, Level level, OutputType outType, ProgressOutputType progressOutType, Node node)
 {
     mName                        = name;
     mInheritedLevel              = level;
     mInheritedOutputType         = outType;
     mInheritedProgressOutputType = progressOutType;
     mNode                        = node;
 }
Beispiel #4
0
 private void PropagateSettings(Level level, OutputType outType, ProgressOutputType progressOutType, TextWriter outputWriter)
 {
     foreach (KeyValuePair <string, Node> item in mChildren)
     {
         if (item.Value.mLogger != null)
         {
             item.Value.mLogger.Inherit(level, outType, progressOutType, outputWriter);
             item.Value.PropagateSettings();
         }
         else
         {
             item.Value.PropagateSettings(level, outType, progressOutType, outputWriter);
         }
     }
 }
Beispiel #5
0
        private static Node GetNode(string name)
        {
            if (name == null)
            {
                return(mRoot);
            }
            string[]           nodes           = name.Split('.');
            Node               node            = mRoot;
            Level              level           = node.mLogger.mLocalLevel;
            OutputType         outType         = node.mLogger.mLocalOutputType;
            ProgressOutputType progressOutType = node.mLogger.mLocalProgressOutputType;
            TextWriter         outputWriter    = node.mLogger.mLocalOutputWriter;

            for (int i = 0; i < nodes.Length; i++)
            {
                string nodeName = nodes[i];
                if (node.mChildren.ContainsKey(nodeName))
                {
                    node = node.mChildren[nodeName];
                    if (node.mLogger != null)
                    {
                        level           = node.mLogger.ActiveLevel;
                        outType         = node.mLogger.ActiveOutputType;
                        progressOutType = node.mLogger.ActiveProgressOutputType;
                        outputWriter    = node.mLogger.ActiveOutputWriter;
                    }
                    else if (i == nodes.Length - 1)
                    {
                        node.mLogger = new Logger(name, level, outType, progressOutType, outputWriter, node);
                    }
                }
                else if (i == nodes.Length - 1)
                {
                    Node newNode = new Node();
                    newNode.mLogger = new Logger(name, level, outType, progressOutType, outputWriter, newNode);
                    node.mChildren.Add(nodeName, node = newNode);
                }
                else
                {
                    node.mChildren.Add(nodeName, node = new Node());
                }
            }
            return(node);
        }
Beispiel #6
0
        private void Progress(Level level, object sender, int freq, string funcName, string message, int step, int numSteps, params object[] args)
        {
            ProgressOutputType activeProgressOutType = ActiveProgressOutputType;

            if ((activeProgressOutType & ProgressOutputType.Off) == 0 && ActiveLevel <= level)
            {
                if ((activeProgressOutType & ProgressOutputType.Console) != 0)
                {
                    if (numSteps <= 0)
                    {
                        if (step % freq == 0)
                        {
                            lock (mConsoleLock)
                            {
                                if (message == null)
                                {
                                    message = "{0}";
                                }
                                if (mProgressSender != null && mProgressSender != sender)
                                {
                                    Console.WriteLine();
                                }
                                if (args != null && args.Length > 0)
                                {
                                    object[] allArgs = new object[1 + args.Length];
                                    allArgs[0] = step;
                                    Array.Copy(args, 0, allArgs, 1, args.Length);
                                    Console.Write("\r" + message, allArgs);
                                }
                                else
                                {
                                    Console.Write("\r" + message, step);
                                }
                                mProgressSender = sender;
                            }
                        }
                    }
                    else
                    {
                        if (step % freq == 0 || step == numSteps)
                        {
                            lock (mConsoleLock)
                            {
                                if (message == null)
                                {
                                    message = "{0} / {1}";
                                }
                                if (mProgressSender != null && mProgressSender != sender)
                                {
                                    Console.WriteLine();
                                }
                                if (args != null && args.Length > 0)
                                {
                                    object[] allArgs = new object[2 + args.Length];
                                    allArgs[0] = step;
                                    allArgs[1] = numSteps;
                                    Array.Copy(args, 0, allArgs, 2, args.Length);
                                    Console.Write("\r" + message, allArgs);
                                }
                                else
                                {
                                    Console.Write("\r" + message, step, numSteps);
                                }
                                mProgressSender = sender;
                                if (step == numSteps)
                                {
                                    mProgressSender = null; Console.WriteLine();
                                }
                            }
                        }
                    }
                }
            }
            if ((activeProgressOutType & ProgressOutputType.Custom) != 0 && mCustomProgressOutput != null && (mDisableCustomOutputLevelFilter || ((activeProgressOutType & ProgressOutputType.Off) == 0 && ActiveLevel <= level)))
            {
                mCustomProgressOutput(mName, sender, freq, funcName, message, step, numSteps, args);
            }
        }
Beispiel #7
0
 private void PropagateSettings(Level level, OutputType outType, ProgressOutputType progressOutType)
 {
     foreach (KeyValuePair<string, Node> item in mChildren)
     {
         if (item.Value.mLogger != null)
         {
             item.Value.mLogger.Inherit(level, outType, progressOutType);
             item.Value.PropagateSettings();
         }
         else
         {
             item.Value.PropagateSettings(level, outType, progressOutType);
         }
     }
 }
Beispiel #8
0
 internal void Inherit(Level level, OutputType outType, ProgressOutputType progressOutType)
 {
     mInheritedLevel = level;
     mInheritedOutputType = outType;
     mInheritedProgressOutputType = progressOutType;
 }