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); }
public void ImmediateWriteToProvider <T>(object what, JournalingLevel level) where T : IJournalProvider { var provider = GetProviderByType <T>(); if (provider != null) { provider.ImmediateWrite(what, level); } }
public void Write(object what, JournalingLevel level) { if (level >= JournalingLevel.Error) { ImmediateWrite(what, level); } else { JournalObjectsCache.Push(new TxtJournalObject(what, level)); } }
public void ImmediateWriteAll(object what, JournalingLevel level) => RegisteredJournalProviders.ForEach((x) => x.ImmediateWrite(what, level));
public TxtJournalObject(object what, JournalingLevel level) { What = what; Level = level; }
public void Write(object what, JournalingLevel level) { throw new NotImplementedException(); }