Skip to content

Commit

Permalink
Add methods for semantic logging support
Browse files Browse the repository at this point in the history
  • Loading branch information
sjuarezgx committed Nov 9, 2023
1 parent 570544a commit cf42388
Show file tree
Hide file tree
Showing 3 changed files with 78 additions and 0 deletions.
52 changes: 52 additions & 0 deletions dotnet/src/dotnetframework/GxClasses/Diagnostics/Log.cs
Original file line number Diff line number Diff line change
Expand Up @@ -51,6 +51,58 @@ public static void Write(int logLevel, string message, string topic)
Write(message, topic, logLevel);
}

private static void LoggingFunc(string message, string topic, int logLevel, params string[] list)
{
IGXLogger log = GetLogger(topic);
LogLevel logLvl = (LogLevel)logLevel;

switch (logLvl)
{
case LogLevel.Off:
break;
case LogLevel.Trace:
GXLogging.Trace(log, message, list);
break;
case LogLevel.Debug:
GXLogging.Debug(log, message, list);
break;
case LogLevel.Info:
GXLogging.Info(log, message, list);
break;
case LogLevel.Warn:
GXLogging.Warn(log, message, list);
break;
case LogLevel.Error:
GXLogging.Error(log, message, list);
break;
case LogLevel.Fatal:
GXLogging.Critical(log, message, list);
break;
default:
GXLogging.Debug(log, message, list);
break;
}
}
public static void Write(string message, string topic, int logLevel, string propertyvalue1)
{
LoggingFunc(message, topic, logLevel, propertyvalue1);
}
public static void Write(string message, string topic, int logLevel, string propertyvalue1, string propertyvalue2)
{
LoggingFunc(message, topic, logLevel, propertyvalue1, propertyvalue2);
}
public static void Write(string message, string topic, int logLevel, string propertyvalue1, string propertyvalue2, string propertyvalue3)
{
LoggingFunc(message, topic, logLevel, propertyvalue1, propertyvalue2, propertyvalue3);
}
public static void Write(string message, string topic, int logLevel, string propertyvalue1, string propertyvalue2, string propertyvalue3, string propertyvalue4)
{
LoggingFunc(message, topic, logLevel, propertyvalue1, propertyvalue2, propertyvalue3, propertyvalue4);
}
public static void Write(string message, string topic, int logLevel, string propertyvalue1, string propertyvalue2, string propertyvalue3, string propertyvalue4, string propertyvalue5)
{
LoggingFunc(message, topic, logLevel, propertyvalue1, propertyvalue2, propertyvalue3, propertyvalue4, propertyvalue5);
}
public static void Write(string message, string topic, int logLevel)
{
IGXLogger log = GetLogger(topic);
Expand Down
25 changes: 25 additions & 0 deletions dotnet/src/dotnetframework/GxClasses/Helpers/GXLogging.cs
Original file line number Diff line number Diff line change
Expand Up @@ -59,6 +59,7 @@ public interface IGXLogger


void LogTrace(string value);
void LogTrace(string value, params string[] list);
void LogError(string msg, Exception ex);

void LogError(string msg);
Expand Down Expand Up @@ -119,6 +120,10 @@ public void LogTrace(string msg)
{
log.LogTrace(msg);
}
public void LogTrace(string msg, params string[] list)
{
log.LogTrace(msg, list);
}
public void LogError(string msg, Exception ex)
{
log.LogError(ex, msg);
Expand Down Expand Up @@ -252,6 +257,18 @@ public void LogTrace(string value)
SetThreadIdForLogging();
log.Logger.Log(MethodBase.GetCurrentMethod().DeclaringType, Level.Trace, value, null);
}

public void LogTrace(string value, params string[] list)
{
SetThreadIdForLogging();
StringBuilder message = new StringBuilder();
message.Append(value);
foreach (string parm in list)
{
message.Append(parm);
}
log.Logger.Log(MethodBase.GetCurrentMethod().DeclaringType, Level.Trace, message.ToString(), null);
}
public void LogError(string msg, Exception ex)
{
SetThreadIdForLogging();
Expand Down Expand Up @@ -506,6 +523,14 @@ internal static void Trace(IGXLogger logger, params string[] list)
logger.LogTrace(string.Join(" ", list));
}
}
internal static void Trace(IGXLogger logger, string msg, params string[] list)
{
if (logger != null)
{
if (logger.IsTraceEnabled)
logger.LogTrace(msg, list);
}
}
public static void Critical(IGXLogger logger, params string[] list)
{
if (logger != null)
Expand Down
1 change: 1 addition & 0 deletions dotnet/test/DotNetUnitTest/Log/LogTest.cs
Original file line number Diff line number Diff line change
Expand Up @@ -14,6 +14,7 @@ public void TestLogOutput()
GXLogging.Debug(log, "Test Debug");
GXLogging.Info(log, "Test Info");
GXLogging.Warn(log, "Test Warn");
GXLogging.Trace(log, "Test Trace {p1}", "parameter1");

Check failure on line 17 in dotnet/test/DotNetUnitTest/Log/LogTest.cs

View workflow job for this annotation

GitHub Actions / build

Argument 1: cannot convert from 'GeneXus.IGXLogger' to 'log4net.ILog'

Check failure on line 17 in dotnet/test/DotNetUnitTest/Log/LogTest.cs

View workflow job for this annotation

GitHub Actions / build

Argument 1: cannot convert from 'GeneXus.IGXLogger' to 'log4net.ILog'

Check failure on line 17 in dotnet/test/DotNetUnitTest/Log/LogTest.cs

View workflow job for this annotation

GitHub Actions / test-external-storages

Argument 1: cannot convert from 'GeneXus.IGXLogger' to 'log4net.ILog'

Check failure on line 17 in dotnet/test/DotNetUnitTest/Log/LogTest.cs

View workflow job for this annotation

GitHub Actions / test-external-storages

Argument 1: cannot convert from 'GeneXus.IGXLogger' to 'log4net.ILog'
}
}
}

0 comments on commit cf42388

Please sign in to comment.