/// <summary>
        /// Initialises ans instance of the <see cref="LoggingProvider"/> class.
        /// </summary>
        /// <param name="loggingContainer">
        /// Container that provider instances write log messages to.
        /// </param>
        public LoggingProvider(string loggerName, LogContainer loggingContainer)
        {
            loggerName.ShouldNotBeNull();
            loggingContainer.ShouldNotBeNull();

            m_LoggerName = loggerName;
            m_LogContainer = loggingContainer;

            IsLoggingEnabled = true;
        }
        /// <summary>
        /// Initialises an instance of the <see cref="BufferedLoggingService"/> class. 
        /// </summary>
        /// <param name="fileHelper">
        /// Helper for working with files.
        /// </param>
        /// <param name="configuration">
        /// Configuration details for buffered data persistence. 
        /// </param>
        public BufferedLoggingService(LogContainer container, ILogger logger, IFileHelper fileHelper, BufferedConfiguration configuration) : base(logger, typeof(BufferedLoggingService))
        {
            logger.ShouldNotBeNull();
            fileHelper.ShouldNotBeNull();
            configuration.ShouldNotBeNull();

            m_LogEntries = container;
            m_BatchSize = 2;
            m_BufferSize = 512;

            m_FileHelper = fileHelper;
            m_WorkingFilePath = configuration.WorkingPath;
            m_TargetFilePath = configuration.TargetPath;
            m_TargetFileExtension = configuration.TargetFileExtension;
            m_WorkingFileExtension = configuration.WorkingFileExtension;
        }