ReloadLoggerTask.cs 2.2 KB

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