Skip to content

Instantly share code, notes, and snippets.

@ankitvijay
Created January 10, 2018 14:23
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save ankitvijay/84471e98d7cd7468e2ee7663790773eb to your computer and use it in GitHub Desktop.
Save ankitvijay/84471e98d7cd7468e2ee7663790773eb to your computer and use it in GitHub Desktop.
Conditional Attribute Example
using System.Diagnostics;
using System.Runtime.CompilerServices;
namespace ConditionalAttributeExample
{
public static class Logger
{
public static void Log(string message,
[CallerFilePath] string sourceFilePath = "",
[CallerLineNumber] int sourceLineNumber = 0,
[CallerMemberName] string callerMemberName = "")
{
Log($"[Message]: {message}; [Source File Path]: {sourceFilePath}; " +
$"[Source Line Number]: {sourceLineNumber}; [Caller Member Name]: {callerMemberName}; ");
}
[Conditional("DEBUG")]
public static void DebugLog(string message, [CallerMemberName] string callerMemberName = "")
{
Log($"[Message]: {message}; [Caller Member Name]: {callerMemberName};");
}
private static void Log(string message)
{
Debug.WriteLine(message);
}
}
}
namespace ConditionalAttributeExample
{
class Program
{
static void Main(string[] args)
{
Logger.DebugLog("Member Start");
// Perform operation
Logger.Log("Testing logging inside Main() method");
Logger.DebugLog("Member End");
}
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment