From 7b0d51640886305ba10182bf2644aa68821c443a Mon Sep 17 00:00:00 2001 From: Tristan Ancelet Date: Tue, 25 Aug 2026 12:54:42 -0500 Subject: [PATCH] Had to fix log_with_context --- src/logger.cr | 27 ++++++++++++++------------- 1 file changed, 14 insertions(+), 13 deletions(-) diff --git a/src/logger.cr b/src/logger.cr index 380b5ad..29ed373 100644 --- a/src/logger.cr +++ b/src/logger.cr @@ -32,33 +32,34 @@ module Logger {% args = @def.args.reject{|a| exclude.includes?(a.name)} %} {% unless args.empty? %} Log.with_context( {% for arg in args %} {{arg.name}}: {{arg.name}}, {% end %} ) do - Log.{{level}} { [ generate_log_line, {{message}}].join(" : ") } + Log.{{level}} { generate_log_line {{message}} } end {% else %} - Log.{{level}} { [ generate_log_line, {{message}}].join(" : ") } + Log.{{level}} { generate_log_line {{message}} } {% end %} {% elsif @type %} - {% if @type.class? && @type.class != Metaclass %} - {% if vars = @type.instance_vars.select(&.annotation(LogContext)) %} + {% if @type.class? %} + {% class_def = @type.methods.includes?(@def) %} + {% if (vars = @type.instance_vars.select(&.annotation(LogContext))) && class_def %} Log.with_context( {% for var in vars %} {{var.name}}: @{{var.name}}, {% end %} ) do - Log.{{level}} { [ generate_log_line, {{message}}].join(" : ") } + Log.{{level}} { generate_log_line {{message}} } end {% else %} - Log.{{level}} { [ generate_log_line, {{message}}].join(" : ") } + Log.{{level}} { generate_log_line {{message}} } {% end %} {% elsif @type.module? %} - Log.{{level}} { [generate_log_line, {{message}}].join(" : ") } + Log.{{level}} { generate_log_line {{message}} } {% end %} {% else %} - Log.{{level}} { [ generate_log_line, {{message}}].join(" : ") } + Log.{{level}} { generate_log_line {{message}} } {% end %} end - macro generate_log_line - {% verbatim do %} - {% if @def %} - "Method({{@def.name}})" - {% end %} + macro generate_log_line(message) + {% if @def %} + [ "Method({{@def.name}})", {{message}}].join(" : ") + {% else %} + {{message}} {% end %} end