コード例 #1
0
        public Boolean Log(LoggerMessageType type,
                           String format,
                           params System.Object[] args)
        {
            if (!CheckMessageType(type))
            {
                return(false);
            }

            LogWritingEventArgs writingArgs = new LogWritingEventArgs(FullPath,
                                                                      type,
                                                                      String.Format(format, args));

            Writing?.Invoke(this, writingArgs);

            FileInfo outputFile = new FileInfo(FullPath);

            if (!outputFile.Directory.Exists)
            {
                outputFile.Directory.Create();
            }
            LogMessageTemplate messageTemplate = new LogMessageTemplate(_config.MessageTemplateText,
                                                                        writingArgs);

            lock (_lock)
            {
                File.AppendAllText(FullPath, messageTemplate.ToString());
            }
            Console.WriteLine(messageTemplate.ToString());

            return(true);
        }
コード例 #2
0
        public Boolean Log(LoggerMessageType type,
                           String format,
                           params System.Object[] args)
        {
            //This is a special flag which prevents sensitive logging information
            //for being output when a debugger is not attached.
            if (type.HasFlag(LoggerMessageType.Sensitive) && !System.Diagnostics.Debugger.IsAttached)
            {
                return(false);
            }
            else
            {
                type = type & ~LoggerMessageType.Sensitive;
            }

            //We need all message types to be in the allowed message
            //types before we can continue
            String[]      allowedMessageTypes     = AllowedMessageTypes.ToString().Split(',');
            List <String> allowedMessageTypesList = new List <String>();

            foreach (String curAllowedType in allowedMessageTypes)
            {
                allowedMessageTypesList.Add(curAllowedType.Trim().ToLower());
            }
            String[] messageTypes = type.ToString().Split(',');
            foreach (String curType in messageTypes)
            {
                if (!allowedMessageTypesList.Contains(curType.Trim().ToLower()))
                {
                    return(false);
                }
            }

            LogWritingEventArgs writingArgs = new LogWritingEventArgs(FullPath,
                                                                      type,
                                                                      String.Format(format, args));

            Writing?.Invoke(this, writingArgs);

            System.Diagnostics.Debug.WriteLine(String.Format(format, args));
            return(true);
        }
コード例 #3
0
 public LogMessageTemplate(String messageTemplate,
                           LogWritingEventArgs writingArgs)
 {
     _messageTemplate = messageTemplate;
     _writingArgs     = writingArgs;
 }