Skip to content

Commit 3cefc15

Browse files
Add XML doc comments to public API for better IntelliSense
Added <summary>, <param>, and <returns> XML documentation to all public types, methods, and properties in CallerLogContext, CallerLogContextExtensions, and FluentLoggerExtensions. Improved parameter naming consistency and added documentation for PrependCallerArgs. These changes enhance code readability and maintainability without affecting runtime behavior.
1 parent 65c48cd commit 3cefc15

3 files changed

Lines changed: 74 additions & 7 deletions

File tree

CallerLogContext.cs

Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,16 +2,38 @@
22

33
namespace FluentLogger;
44

5+
/// <summary>
6+
/// Contains the logger and caller information.
7+
/// </summary>
58
public readonly struct CallerLogContext
69
{
10+
/// <summary>
11+
/// The logger instance.
12+
/// </summary>
713
public ILogger Logger { get; }
814

15+
/// <summary>
16+
/// The file path of the caller.
17+
/// </summary>
918
public string? File { get; }
1019

20+
/// <summary>
21+
/// The member name of the caller.
22+
/// </summary>
1123
public string? Member { get; }
1224

25+
/// <summary>
26+
/// The line number of the caller.
27+
/// </summary>
1328
public int Line { get; }
1429

30+
/// <summary>
31+
/// The constructor.
32+
/// </summary>
33+
/// <param name="logger">The logger instance.</param>
34+
/// <param name="file">The file path of the caller.</param>
35+
/// <param name="member">The member name of the caller.</param>
36+
/// <param name="line">The line number of the caller.</param>
1537
public CallerLogContext(ILogger logger, string? file, string? member, int line)
1638
{
1739
Logger = logger;

CallerLogContextExtensions.cs

Lines changed: 41 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -2,32 +2,67 @@
22

33
namespace FluentLogger;
44

5+
/// <summary>
6+
/// Contains extension methods for logging with caller context.
7+
/// </summary>
58
public static class CallerLogContextExtensions
69
{
10+
/// <summary>
11+
/// Logs an information message including caller context (file name, member name, line number).
12+
/// </summary>
13+
/// <param name="context">The caller log context.</param>
14+
/// <param name="message">The message to log.</param>
15+
/// <param name="args">The arguments for the message.</param>
716
public static void LogInformation(this CallerLogContext context, string message, params object?[] args)
817
{
9-
string fileName = Path.GetFileName(context.File);
18+
string? fileName = Path.GetFileName(context.File);
1019
context.Logger.LogInformation("[{File}:{Member}:{Line}] " + message, PrependCallerArgs(fileName, context.Member, context.Line, args));
1120
}
1221

22+
/// <summary>
23+
/// Logs an error message including caller context (file name, member name, line number).
24+
/// </summary>
25+
/// <param name="context">The caller log context.</param>
26+
/// <param name="message">The message to log.</param>
27+
/// <param name="args">The arguments for the message.</param>
1328
public static void LogError(this CallerLogContext context, string message, params object?[] args)
1429
{
15-
string fileName = Path.GetFileName(context.File);
30+
string? fileName = Path.GetFileName(context.File);
1631
context.Logger.LogError("[{File}:{Member}:{Line}] " + message, PrependCallerArgs(fileName, context.Member, context.Line, args));
1732
}
1833

34+
/// <summary>
35+
/// Logs an debug message including caller context (file name, member name, line number).
36+
/// </summary>
37+
/// <param name="context">The caller log context.</param>
38+
/// <param name="message">The message to log.</param>
39+
/// <param name="args">The arguments for the message.</param>
1940
public static void LogDebug(this CallerLogContext context, string message, params object?[] args)
2041
{
21-
string fileName = Path.GetFileName(context.File);
42+
string? fileName = Path.GetFileName(context.File);
2243
context.Logger.LogDebug("[{File}:{Member}:{Line}] " + message, PrependCallerArgs(fileName, context.Member, context.Line, args));
2344
}
2445

25-
public static void LogWarning(this CallerLogContext ctx, string message, params object?[] args)
46+
/// <summary>
47+
/// Logs an warning message including caller context (file name, member name, line number).
48+
/// </summary>
49+
/// <param name="context">The caller log context.</param>
50+
/// <param name="message">The message to log.</param>
51+
/// <param name="args">The arguments for the message.</param>
52+
public static void LogWarning(this CallerLogContext context, string message, params object?[] args)
2653
{
27-
string fileName = Path.GetFileName(ctx.File);
28-
ctx.Logger.LogWarning("[{File}:{Member}:{Line}] " + message, PrependCallerArgs(fileName, ctx.Member, ctx.Line, args));
54+
string? fileName = Path.GetFileName(context.File);
55+
context.Logger.LogWarning("[{File}:{Member}:{Line}] " + message, PrependCallerArgs(fileName, context.Member, context.Line, args));
2956
}
3057

58+
/// <summary>
59+
/// Prepends caller information to the arguments array.
60+
/// </summary>
61+
/// <param name="file">The file name of the caller.</param>
62+
/// <param name="member">The member name of the caller.</param>
63+
/// <param name="line">The line number of the caller.</param>
64+
/// <param name="args">The original arguments array.</param>
65+
/// <returns>A new arguments array with caller information prepended.</returns>
3166
static object?[] PrependCallerArgs(string file, string? member, int line, object?[] args)
3267
{
3368
object?[] finalArgs = new object?[args.Length + 3];

FluentLoggerExtensions.cs

Lines changed: 11 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,17 @@ namespace FluentLogger;
55

66
public static class FluentLoggerExtensions
77
{
8+
/// <summary>
9+
/// Wraps the given ILogger with caller information.
10+
/// </summary>
11+
/// <param name="logger">The logger instance.</param>
12+
/// <param name="file">The file path of the caller.</param>
13+
/// <param name="member">The member name of the caller.</param>
14+
/// <param name="line">The line number of the caller.</param>
15+
/// <returns>A context object containing the logger and caller information.</returns>
816
public static CallerLogContext WithCaller(this ILogger logger,
9-
[CallerFilePath] string? file = null, [CallerMemberName] string? member = null, [CallerLineNumber] int line = 0)
17+
[CallerFilePath] string? file = null,
18+
[CallerMemberName] string? member = null,
19+
[CallerLineNumber] int line = 0)
1020
=> new(logger, file, member, line);
1121
}

0 commit comments

Comments
 (0)