コード例 #1
0
        public void ImmediateWrite(object what, JournalingLevel level)
        {
            var journal = DozeObject.FindObjectOfType <JournalObject>();

            if (journal == null)
            {
                throw new NullReferenceException($"Journal object can't be null for ImmediateWrite from TxtJournalProvider!");
            }

            var settings = journal.GetSettingsContainer();

            if (settings == null)
            {
                throw new NullReferenceException($"Journal object settings can't be null for ImmediateWrite from TxtJournalProvider!");
            }

            if (!Directory.Exists(settings.Dir))
            {
                Directory.CreateDirectory(settings.Dir);
            }

            var file = settings.Dir + "\\" + settings.FileNameAssociates[(int)level] + $".{settings.FilesExtension}";

            if (!File.Exists(file))
            {
                File.Create(file).Close();
            }

            using FileStream fs = new FileStream(file, FileMode.OpenOrCreate);
            var bytes = Encoding.UTF8.GetBytes(what.ToString());

            fs.Write(bytes, 0, bytes.Length);
        }
コード例 #2
0
        public void ImmediateWriteToProvider <T>(object what, JournalingLevel level) where T : IJournalProvider
        {
            var provider = GetProviderByType <T>();

            if (provider != null)
            {
                provider.ImmediateWrite(what, level);
            }
        }
コード例 #3
0
 public void Write(object what, JournalingLevel level)
 {
     if (level >= JournalingLevel.Error)
     {
         ImmediateWrite(what, level);
     }
     else
     {
         JournalObjectsCache.Push(new TxtJournalObject(what, level));
     }
 }
コード例 #4
0
 public void ImmediateWriteAll(object what, JournalingLevel level)
 => RegisteredJournalProviders.ForEach((x) => x.ImmediateWrite(what, level));
コード例 #5
0
 public TxtJournalObject(object what, JournalingLevel level)
 {
     What  = what;
     Level = level;
 }
コード例 #6
0
 public void Write(object what, JournalingLevel level)
 {
     throw new NotImplementedException();
 }