Example #1
0
        /// <summary>
        /// Attempts to apply configuration if possible.
        /// </summary>
        /// <param name="m">The monitor to use.</param>
        /// <param name="c">Configuration to apply.</param>
        /// <returns>True if the configuration applied.</returns>
        public ValueTask <bool> ApplyConfigurationAsync(IActivityMonitor m, IHandlerConfiguration c)
        {
            if (c is not BinaryFileConfiguration cF || cF.Path != _config.Path)
            {
                return(ValueTask.FromResult(false));
            }

            if (_config.UseGzipCompression != cF.UseGzipCompression)
            {
                var f = new MonitorBinaryFileOutput(_config.Path, cF.MaxCountPerFile, cF.UseGzipCompression);
                // If the initialization of the new file fails (should not happen), we fail to apply the configuration:
                // this handler will be Deactivated and another one will be created... and it may work. Who knows...
                if (!f.Initialize(m))
                {
                    return(ValueTask.FromResult(false));
                }
                _file.Close();
                _file = f;
            }
            else
            {
                _file.MaxCountPerFile = cF.MaxCountPerFile;
            }
            _config = cF;
            return(ValueTask.FromResult(true));
        }
Example #2
0
 /// <summary>
 /// Initializes a new <see cref="BinaryFile"/> bound to its <see cref="BinaryFileConfiguration"/>.
 /// </summary>
 /// <param name="config">The configuration.</param>
 public BinaryFile( BinaryFileConfiguration config )
     : base( config )
 {
     if( config == null ) throw new ArgumentNullException( "config" );
     _file = new MonitorBinaryFileOutput( config.Path, config.MaxCountPerFile, config.UseGzipCompression );
     _file.FileWriteThrough = config.FileWriteThrough;
     _file.FileBufferSize = config.FileBufferSize;
 }
Example #3
0
 /// <summary>
 /// Initializes a new <see cref="BinaryFile"/> bound to its <see cref="BinaryFileConfiguration"/>.
 /// </summary>
 /// <param name="config">The configuration.</param>
 public BinaryFile(BinaryFileConfiguration config)
 {
     if (config == null)
     {
         throw new ArgumentNullException("config");
     }
     _file              = new MonitorBinaryFileOutput(config.Path, config.MaxCountPerFile, config.UseGzipCompression);
     _config            = config;
     _countHousekeeping = _config.HousekeepingRate;
 }
Example #4
0
 /// <summary>
 /// Initializes a new <see cref="BinaryFile"/> bound to its <see cref="BinaryFileConfiguration"/>.
 /// </summary>
 /// <param name="config">The configuration.</param>
 public BinaryFile(BinaryFileConfiguration config)
     : base(config)
 {
     if (config == null)
     {
         throw new ArgumentNullException("config");
     }
     _file = new MonitorBinaryFileOutput(config.Path, config.MaxCountPerFile, config.UseGzipCompression);
     _file.FileWriteThrough = config.FileWriteThrough;
     _file.FileBufferSize   = config.FileBufferSize;
 }
Example #5
0
        public BinaryGloutonHandler(BinaryGloutonHandlerConfiguration configuration)
        {
            if (configuration == null)
            {
                throw new ArgumentNullException(nameof(configuration));
            }

            _file         = new MonitorBinaryFileOutput(configuration.Path, configuration.MaxCountPerFile, configuration.UseGzipCompression);
            _memoryStream = new MemoryStream();
            _binaryReader = new CKBinaryReader(_memoryStream, Encoding.UTF8, true);

            _configuration = configuration;
        }
Example #6
0
 public bool ApplyConfiguration(IGloutonHandlerConfiguration configuration)
 {
     if (!(configuration is BinaryGloutonHandlerConfiguration cF) || cF.Path != _configuration.Path)
     {
         return(false);
     }
     if (_configuration.UseGzipCompression != cF.UseGzipCompression)
     {
         _file.Close();
         _file = new MonitorBinaryFileOutput(_configuration.Path, _configuration.MaxCountPerFile, _configuration.UseGzipCompression);
     }
     else
     {
         _file.MaxCountPerFile = cF.MaxCountPerFile;
     }
     _configuration = cF;
     return(true);
 }