示例#1
0
 public void Critical(string dateTime, string message)
 {
     foreach (var appender in appenders)
     {
         appender.Append(dateTime, ReportLevel.CRITICAL, message);
     }
 }
        private static async Task addFibonacciNumbers(
            ContextualStream <BigInteger> stream, int count = 30)
        {
            await TaskCollector.With(async tc =>
            {
                await stream.InChild(new CSScope(
                                         RWScope.ReadWrite,
                                         InfiniteIntervalScope.Create(
                                             RWScope.ReadWrite, 0, null)),
                                     async childStream =>
                {
                    await Task.Yield();

                    IAppender <BigInteger> appender =
                        childStream.GetAppender();

                    BigInteger a = 1, b = 1;
                    tc.Add(appender.Append(a));

                    /* FIXME: Users of appender generally don’t know
                     * the internals of ContextualStream.
                     * Poss. solution: IAppender.MaxRequiredScope.
                     * Then it would also be useful, if (the) access scopes
                     * could be merged. */
                    childStream.Context.RequiredScope = new CSScope(
                        RWScope.ReadWrite,
                        InfiniteIntervalScope.Create(
                            RWScope.ReadWrite, 1, null));
                    tc.Add(appender.Append(b));
                    childStream.Context.RequiredScope = new CSScope(
                        RWScope.ReadWrite,
                        InfiniteIntervalScope.Create(
                            RWScope.ReadWrite, 2, null));
                    for (int i = 2; i < count; i++)
                    {
                        BigInteger c = a + b;
                        await Task.Delay(250);
                        a = b;
                        b = c;
                        tc.Add(appender.Append(c));
                        childStream.Context.RequiredScope = new CSScope(
                            RWScope.ReadWrite,
                            InfiniteIntervalScope.Create(
                                RWScope.ReadWrite, i + 1, null));
                    }
                });
            });
        }
示例#3
0
        /// <exception cref="VPackBuilderException"/>
        private VPackBuilder AddInternal <T>(IAppender <T> appender, T value)
        {
            bool haveReported = false;

            if (this.stack.Count > 0 && !this.keyWritten)
            {
                this.ReportAdd();
                haveReported = true;
            }

            try
            {
                if (value == null)
                {
                    this.AppendNull();
                }
                else
                {
                    appender.Append(this, value);
                }
            }
            catch (VPackBuilderException e)
            {
                // clean up in case of an exception
                if (haveReported)
                {
                    this.CleanupAdd();
                }

                throw;
            }

            return(this);
        }
示例#4
0
 /// <summary>
 ///     Register the subscription of the specified appender.
 /// </summary>
 /// <param name="appender">The appender.</param>
 public void Subscribe(IAppender appender)
 {
     ILogEvent[] logEvents;
     lock (_syncRoot)
     {
         logEvents = _logEvents.ToArray();
         // TODO : alter behavior depending on the configuration
         _logEvents.Clear(); // Clean kept event to avoid memory exhaustion with logs.
         _appenders.Add(appender);
     }
     foreach (var logEvent in logEvents)
     {
         appender.Append(logEvent);
     }
 }
示例#5
0
        static void Main(string[] args)
        {
            ILayout   layout          = new SimpleLayout();
            IAppender consoleAppender = new ConsoleAppender(layout);
            IAppender fileAppender    = new FileAppender(layout);

            ILogger logger = new Logger(consoleAppender, fileAppender);

            try
            {
                logger.Info("The program was finished just now");
                logger.Warn("I am going to test the program now");
                logger.Error("File not found");
            }
            catch (FileNotFoundException)
            {
                Logger currentLogger = logger as Logger;
                if (currentLogger != null)
                {
                    IAppender appender = currentLogger.FindAppender("ConsoleLogger");
                    appender.Append(new Message("Operation failed because the Path of file was not found", Type.Fatal));
                }
            }
        }
示例#6
0
 private void Append(string dateTime, ReportLevel reportLevel, string message)
 {
     consoleAppender?.Append(dateTime, reportLevel, message);
     fileAppender?.Append(dateTime, reportLevel, message);
 }
 public void Append(string dateTime, ReportLevel type, string message)
 {
     consoleAppender?.Append(dateTime, type, message);
     fileAppender?.Append(dateTime, type, message);
 }
示例#8
0
 public void Text(string text)
 {
     writer.Append(text);
 }
示例#9
0
 public void AppendMessage(string dateTime, ReportLevel errorLevel, string message)
 {
     appender?.Append(dateTime, errorLevel, message);
     fileAppender?.Append(dateTime, errorLevel, message);
 }
示例#10
0
 private void Append(string dateTime, ReportLevel type, string message)
 {
     appender?.Append(dateTime, type, message);
     fileAppender?.Append(dateTime, type, message);
 }
 private void Append(string dateTime, string type, string message)
 {
     consoleAppender.Append(dateTime, type, message);
     fileAppender.Append(dateTime, type, message);
 }
示例#12
0
 private void AppenedMessage(string dateTime, MessageType currentMessageType, string message)
 {
     consoleAppender?.Append(dateTime, currentMessageType, message);
     fileAppender?.Append(dateTime, currentMessageType, message);
 }
 private void AppendMessage(string dateTime, ReportLevel reportLevel, string errorMessage)
 {
     consoleAppender?.Append(dateTime, reportLevel, errorMessage);
     fileAppender?.Append(dateTime, reportLevel, errorMessage);
 }
示例#14
0
        /// <exception cref="VPackBuilderException"/>
        private VPackBuilder AddInternal <T>(string attribute, IAppender <T> appender, T value)
        {
            if (attribute != null)
            {
                bool haveReported = false;
                if (this.stack.Count > 0)
                {
                    byte head = this.Head();
                    if (head != 0x0b && head != 0x14)
                    {
                        throw new VPackBuilderNeedOpenObjectException();
                    }

                    if (this.keyWritten)
                    {
                        throw new VPackBuilderKeyAlreadyWrittenException();
                    }

                    this.ReportAdd();
                    haveReported = true;
                }

                try
                {
                    if (VPackSlice.attributeTranslator != null)
                    {
                        VPackSlice translate = VPackSlice.attributeTranslator.Translate(attribute);
                        if (translate != null)
                        {
                            byte[] trValue = translate.GetRawVPack();
                            this.EnsureCapacity(this.size + trValue.Length);
                            for (int i = 0; i < trValue.Length; i++)
                            {
                                this.AddUnchecked(trValue[i]);
                            }

                            this.keyWritten = true;
                            if (value == null)
                            {
                                this.AppendNull();
                            }
                            else
                            {
                                appender.Append(this, value);
                            }

                            return(this);
                        }
                    }

                    // otherwise fall through to regular behavior
                    STRING.Append(this, attribute);
                    this.keyWritten = true;
                    if (value == null)
                    {
                        this.AppendNull();
                    }
                    else
                    {
                        appender.Append(this, value);
                    }
                }
                catch (VPackBuilderException e)
                {
                    // clean up in case of an exception
                    if (haveReported)
                    {
                        this.CleanupAdd();
                    }

                    throw;
                }
                finally
                {
                    this.keyWritten = false;
                }
            }
            else
            {
                this.AddInternal(appender, value);
            }

            return(this);
        }
示例#15
0
 private void Append(string dateTime, string type, string criticalMessage)
 {
     consoleAappender?.Append(dateTime, type, criticalMessage);
     fileAappender?.Append(dateTime, type, criticalMessage);
 }
示例#16
0
 private void AppendMessage(string date, ReportLevel reportLevel, string message)
 {
     _appender.Append(date, reportLevel, message);
 }
示例#17
0
 private void Append(string dateTime, ReportLevel type, string message)
 {
     consoleAppender?.Append(dateTime, type, message); // the ? says taht if it is null it will not execute the Method().
     fileAppender?.Append(dateTime, type, message);    // the ? says taht if it is null it will not execute the Method().
 }
示例#18
0
        private void Append(string dateTime, ReportLevel reportLevel, string criticalMessage)
        {
            consoleAappender?.Append(dateTime, reportLevel, criticalMessage);

            fileAappender?.Append(dateTime, reportLevel, criticalMessage);
        }
示例#19
0
 public void Error(string dateTime, string errorMessage)
 {
     consoleAppender.Append(dateTime, "Error", errorMessage);
 }