got tracing and loggin working in opentelemetry

This commit is contained in:
2024-01-01 20:45:33 -07:00
parent 654f2be54c
commit fee588a67f
12 changed files with 181 additions and 57 deletions

View File

@@ -16,13 +16,22 @@ public class CoursePlanner
private readonly MyLogger<CoursePlanner> logger;
private readonly FileStorageManager fileStorageManager;
private readonly CanvasService canvas;
private readonly ILogger<CoursePlanner> _otherLogger;
public bool LoadingCanvasData { get; internal set; } = false;
public CoursePlanner(MyLogger<CoursePlanner> logger, FileStorageManager fileStorageManager, CanvasService canvas)
public CoursePlanner(
MyLogger<CoursePlanner> logger,
FileStorageManager fileStorageManager,
CanvasService canvas,
ILogger<CoursePlanner> otherLogger
)
{
this.logger = logger;
this.fileStorageManager = fileStorageManager;
this.canvas = canvas;
_otherLogger = otherLogger;
_otherLogger.LogInformation("testing other logging");
}
private Timer? _debounceTimer;
@@ -34,7 +43,7 @@ public class CoursePlanner
get => _localCourse;
set
{
using var activity = DiagnosticsConfig.Source?.StartActivity("Loading Course");
if (value == null)
{
_localCourse = null;
@@ -110,6 +119,8 @@ public class CoursePlanner
IEnumerable<CanvasAssignmentGroup> canvasAssignmentGroups
)> LoadCanvasData()
{
using var activity = DiagnosticsConfig.Source.StartActivity("Loading Canvas Data to Course Planner");
LoadingCanvasData = true;
StateHasChanged?.Invoke();
@@ -172,7 +183,7 @@ public class CoursePlanner
? g
: g with {CanvasId = canvasGroup.Id};
})
}
}
};
}
}

View File

@@ -1,3 +1,4 @@
using System.Diagnostics;
using LocalModels;
using Management.Services;
using YamlDotNet.Serialization;
@@ -7,21 +8,24 @@ public class FileStorageManager
private readonly MyLogger<FileStorageManager> logger;
private readonly CourseMarkdownLoader _courseMarkdownLoader;
private readonly MarkdownCourseSaver _saveMarkdownCourse;
private readonly ILogger<FileStorageManager> _otherLogger;
private readonly string _basePath;
public FileStorageManager(
MyLogger<FileStorageManager> logger,
CourseMarkdownLoader courseMarkdownLoader,
MarkdownCourseSaver saveMarkdownCourse
MarkdownCourseSaver saveMarkdownCourse,
ILogger<FileStorageManager> otherLogger
)
{
using var activity = DiagnosticsConfig.Source.StartActivity("loading storage directory");
this.logger = logger;
_courseMarkdownLoader = courseMarkdownLoader;
_saveMarkdownCourse = saveMarkdownCourse;
_otherLogger = otherLogger;
_basePath = FileConfiguration.GetBasePath();
this.logger.Log("Using storage directory: " + _basePath);
}
public async Task SaveCourseAsync(LocalCourse course, LocalCourse? previouslyStoredCourse)
{
@@ -36,6 +40,7 @@ public class FileStorageManager
public async Task<IEnumerable<LocalCourse>> LoadSavedMarkdownCourses()
{
return await _courseMarkdownLoader.LoadSavedMarkdownCourses();
}
@@ -43,11 +48,18 @@ public class FileStorageManager
{
if(!Directory.Exists(_basePath))
throw new DirectoryNotFoundException($"Cannot get empty directories, {_basePath} does not exist");
return Directory
.GetDirectories(_basePath, "*")
.Where(dir => !Directory.EnumerateFileSystemEntries(dir).Any())
.ToArray();
}
}
}
public static class DiagnosticsConfig
{
public const string SourceName = "canvas-management-source";
public static ActivitySource Source = new ActivitySource(SourceName);
}

View File

@@ -128,4 +128,4 @@ public class CourseMarkdownLoader
return await Task.WhenAll(quizPromises);
}
}
}

View File

@@ -1,17 +1,11 @@
using System.Threading.Tasks.Sources;
using LocalModels;
using Management.Services;
namespace Management.Services;
public class MarkdownCourseSaver
public class MarkdownCourseSaver(MyLogger<MarkdownCourseSaver> logger)
{
private readonly MyLogger<MarkdownCourseSaver> logger;
private readonly string _basePath;
public MarkdownCourseSaver(MyLogger<MarkdownCourseSaver> logger)
{
this.logger = logger;
_basePath = FileConfiguration.GetBasePath();
}
private readonly MyLogger<MarkdownCourseSaver> _logger = logger;
private readonly string _basePath = FileConfiguration.GetBasePath();
public async Task Save(LocalCourse course, LocalCourse? previouslyStoredCourse)
{
@@ -70,7 +64,7 @@ public class MarkdownCourseSaver
{
var markdownPath = quizzesDirectory + "/" + quiz.Name + ".md"; ;
var quizMarkdown = quiz.ToMarkdown();
logger.Log("saving quiz " + markdownPath);
_logger.Log("saving quiz " + markdownPath);
await File.WriteAllTextAsync(markdownPath, quizMarkdown);
}
}
@@ -94,7 +88,7 @@ public class MarkdownCourseSaver
foreach (var file in filesToDelete)
{
logger.Log($"removing old quiz, it has probably been renamed {file}");
_logger.Log($"removing old quiz, it has probably been renamed {file}");
File.Delete(file);
}
@@ -117,7 +111,7 @@ public class MarkdownCourseSaver
var assignmentMarkdown = assignment.ToMarkdown();
var filePath = assignmentsDirectory + "/" + assignment.Name + ".md";
logger.Log("saving assignment " + filePath);
_logger.Log("saving assignment " + filePath);
await File.WriteAllTextAsync(filePath, assignmentMarkdown);
}
}
@@ -141,9 +135,9 @@ public class MarkdownCourseSaver
foreach (var file in filesToDelete)
{
logger.Log($"removing old assignment, it has probably been renamed {file}");
_logger.Log($"removing old assignment, it has probably been renamed {file}");
File.Delete(file);
}
}
}
}

View File

@@ -5,22 +5,22 @@ namespace Management.Services;
public class MyLogger<T>
{
private readonly ILogger<T> baseLogger;
private readonly ILogger<T> _baseLogger;
public MyLogger(ILogger<T> baseLogger)
{
this.baseLogger = baseLogger;
this._baseLogger = baseLogger;
}
public void Log(
string message,
LogLevel logLevel = LogLevel.Information,
// LogLevel logLevel = LogLevel.Information,
[CallerMemberName] string memberName = ""
)
{
var finalMessage = $"[{typeof(T)}.{memberName}] {message}";
baseLogger.Log(logLevel, finalMessage);
_baseLogger.LogInformation(finalMessage);
Console.WriteLine(finalMessage);
}
@@ -32,7 +32,7 @@ public class MyLogger<T>
{
var finalMessage = $"[{typeof(T)}.{memberName}] {message}";
baseLogger.Log(logLevel, finalMessage);
_baseLogger.Log(logLevel, finalMessage);
Console.WriteLine(finalMessage);
}
public void Error(
@@ -43,7 +43,7 @@ public class MyLogger<T>
{
var finalMessage = $"ERROR: [{typeof(T)}.{memberName}] {message}";
baseLogger.Log(logLevel, finalMessage);
_baseLogger.Log(logLevel, finalMessage);
Console.WriteLine(finalMessage);
}
}
}