ReloadLoggerTask.cs 1.8 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061
  1. using MediaBrowser.Common.Kernel;
  2. using MediaBrowser.Model.Tasks;
  3. using System;
  4. using System.Collections.Generic;
  5. using System.ComponentModel.Composition;
  6. using System.Threading;
  7. using System.Threading.Tasks;
  8. namespace MediaBrowser.Common.ScheduledTasks.Tasks
  9. {
  10. /// <summary>
  11. /// Class ReloadLoggerFileTask
  12. /// </summary>
  13. [Export(typeof(IScheduledTask))]
  14. public class ReloadLoggerFileTask : BaseScheduledTask<IKernel>
  15. {
  16. /// <summary>
  17. /// Gets the default triggers.
  18. /// </summary>
  19. /// <returns>IEnumerable{BaseTaskTrigger}.</returns>
  20. protected override IEnumerable<BaseTaskTrigger> GetDefaultTriggers()
  21. {
  22. var trigger = new DailyTrigger { TimeOfDay = TimeSpan.FromHours(0) }; //12am
  23. return new[] { trigger };
  24. }
  25. /// <summary>
  26. /// Executes the internal.
  27. /// </summary>
  28. /// <param name="cancellationToken">The cancellation token.</param>
  29. /// <param name="progress">The progress.</param>
  30. /// <returns>Task.</returns>
  31. protected override Task ExecuteInternal(CancellationToken cancellationToken, IProgress<double> progress)
  32. {
  33. cancellationToken.ThrowIfCancellationRequested();
  34. progress.Report(0);
  35. return Task.Run(() => Kernel.ReloadLogger());
  36. }
  37. /// <summary>
  38. /// Gets the name.
  39. /// </summary>
  40. /// <value>The name.</value>
  41. public override string Name
  42. {
  43. get { return "Start new log file"; }
  44. }
  45. /// <summary>
  46. /// Gets the description.
  47. /// </summary>
  48. /// <value>The description.</value>
  49. public override string Description
  50. {
  51. get { return "Moves logging to a new file to help reduce log file sizes."; }
  52. }
  53. }
  54. }