Mercurial > repos > IBBoard
view Logging/FileLogger.cs @ 74:726731c78414
Re #37: Add event to indicate change of translation
* Add event and trigger when current language value changes
author | IBBoard <dev@ibboard.co.uk> |
---|---|
date | Wed, 07 Apr 2010 14:56:17 +0000 |
parents | cc7fae81afec |
children | 0f88d32b22cc |
line wrap: on
line source
// This file (FileLogger.cs) is a part of the IBBoard library and is copyright 2009 IBBoard. // // The file and the library/program it is in are licensed under the GNU LGPL license, either version 3 of the License or (at your option) any later version. Please see COPYING.LGPL for more information and the full license. using System; using System.IO; namespace IBBoard.Logging { public abstract class FileLogger : Logger { public FileLogger() : this(CreateDefaultLogFileStream()) { } public FileLogger(string path) : this(CreateLogFileStream(path)) { } public FileLogger(FileInfo file) : this(CreateLogFileStream(file)) { } public FileLogger(FileStream stream) : base(stream) { } public static string MakeDefaultLogFilePath() { return MakeLogFilePath(Constants.UserDataPath); } public static string MakeLogFilePath(string path) { return path.TrimEnd(IBBoard.Constants.DirectoryChar) + IBBoard.Constants.DirectoryChar + "logs" + IBBoard.Constants.DirectoryChar + String.Format("{0:yyyy-MM-dd-HHmmss}", DateTime.Now)+".log"; } public static FileStream CreateDefaultLogFileStream() { return CreateLogFileStream(MakeDefaultLogFilePath()); } public static FileStream CreateLogFileStream(string path) { return CreateLogFileStream(new FileInfo(path)); } public static FileStream CreateLogFileStream(FileInfo file) { if (!file.Directory.Exists) { file.Directory.Create(); } return new FileStream(file.FullName, FileMode.OpenOrCreate, FileAccess.Write); } } }