
namespace LJLib.Tools.File
{
    internal class SyncLogger : Logger
    {
        protected Logger _logger;

        public SyncLogger(Logger logger)
        {
            _logger = logger;
        }

        public override string Path
        {
            get
            {
                return _logger.Path;
            }
        }

        public override string FileName
        {
            get
            {
                return _logger.FileName;
            }
        }

        public override string FullName
        {
            get
            {
                return _logger.FullName;
            }
        }

        public override void WriteLog(string msg)
        {
            lock (_logger.SyncRoot)
            {
                _logger.WriteLog(msg);
            }
        }

        public override void InsertLog(string msg)
        {
            lock (_logger.SyncRoot)
            {
                _logger.InsertLog(msg);
            }
        }

        public override bool IsSynchronized
        {
            get
            {
                return true;
            }
        }

        public override object SyncRoot
        {
            get
            {
                return _logger.SyncRoot;
            }
        }
    }
}
