updated
This commit is contained in:
+25
-8
@@ -5,7 +5,15 @@ module Logger
|
|||||||
annotation LogContext
|
annotation LogContext
|
||||||
end
|
end
|
||||||
|
|
||||||
Log = ::Log
|
annotation LogMethod
|
||||||
|
end
|
||||||
|
|
||||||
|
annotation LogConfig
|
||||||
|
end
|
||||||
|
|
||||||
|
{% if @type && ! @type.has_constant?("Log") %}
|
||||||
|
Log = ::Log.for(self)
|
||||||
|
{% end %}
|
||||||
|
|
||||||
{% verbatim do %}
|
{% verbatim do %}
|
||||||
macro finished
|
macro finished
|
||||||
@@ -18,6 +26,18 @@ module Logger
|
|||||||
end
|
end
|
||||||
|
|
||||||
macro log_with_context(level, message)
|
macro log_with_context(level, message)
|
||||||
|
{% if @def && @def.annotation(LogMethod) %}
|
||||||
|
{% anno = @def.annotation(LogMethod) %}
|
||||||
|
{% exclude = anno[:exclude].map(&.id) || [] of MacroId %}
|
||||||
|
{% 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(" : ") }
|
||||||
|
end
|
||||||
|
{% else %}
|
||||||
|
Log.{{level}} { [ generate_log_line, {{message}}].join(" : ") }
|
||||||
|
{% end %}
|
||||||
|
{% elsif @type %}
|
||||||
{% if @type.class? %}
|
{% if @type.class? %}
|
||||||
{% if vars = @type.instance_vars.select(&.annotation(LogContext)) %}
|
{% if vars = @type.instance_vars.select(&.annotation(LogContext)) %}
|
||||||
Log.with_context( {% for var in vars %} {{var.name}}: @{{var.name}}, {% end %} ) do
|
Log.with_context( {% for var in vars %} {{var.name}}: @{{var.name}}, {% end %} ) do
|
||||||
@@ -26,6 +46,9 @@ module Logger
|
|||||||
{% else %}
|
{% else %}
|
||||||
Log.{{level}} { [ generate_log_line, {{message}}].join(" : ") }
|
Log.{{level}} { [ generate_log_line, {{message}}].join(" : ") }
|
||||||
{% end %}
|
{% end %}
|
||||||
|
{% elsif @type.module? %}
|
||||||
|
Log.{{level}} { {{message}} }
|
||||||
|
{% end %}
|
||||||
{% else %}
|
{% else %}
|
||||||
Log.{{level}} { [ generate_log_line, {{message}}].join(" : ") }
|
Log.{{level}} { [ generate_log_line, {{message}}].join(" : ") }
|
||||||
{% end %}
|
{% end %}
|
||||||
@@ -33,14 +56,8 @@ module Logger
|
|||||||
|
|
||||||
macro generate_log_line
|
macro generate_log_line
|
||||||
{% verbatim do %}
|
{% verbatim do %}
|
||||||
{% if @type && @def %}
|
{% if @def %}
|
||||||
"{{(@type.module? ? "Module" : "Class").id}}({{@type.name}})" + " : " + "Method({{@def.name}})"
|
|
||||||
{% elsif @type %}
|
|
||||||
"{{(@type.module? ? "Module" : "Class").id}}({{@type.name}})"
|
|
||||||
{% elsif @def %}
|
|
||||||
"Method({{@def.name}})"
|
"Method({{@def.name}})"
|
||||||
{% else %}
|
|
||||||
{{message}}
|
|
||||||
{% end %}
|
{% end %}
|
||||||
{% end %}
|
{% end %}
|
||||||
end
|
end
|
||||||
|
|||||||
Reference in New Issue
Block a user