Recommendations for Debugging your C# code
One of the best ways to debug your C# code is to monitor the log while you run the action.
- Prefix each log entry with something you can filter the logs by
- I usually create my own private void Log methods that will prefix the log prefix
- You can use System.Reflection to get the current method name so you can pinpoint which method the log occurred
C# Tips
I usually set up a log prefix so I can find the log easily when reading the log file. I do this by declaring a const string that I can reuse for log methods.
using System;
public bool CPHInline
{
const string LOG_PREFIX = "Extension-Name Log: ";
public bool Execute()
{
string methodName = $"{System.Reflection.MethodBase.GetCurrentMethod().Name}: "; // Used to append the method name when logging
LogInfo($"{methodName}Trying to get %targetUserName%");
// Break if %targetUserName% doesn't exist
if (!CPH.TryGetArg("targetUserName", out string targetUserName))
{
LogError($"{methodName}%targetUserName% doesn't exist!");
return false;
}
LogInfo($"{methodName}Found %targetUserName% contains '{targetUserName}'");
return true;
}
private void LogError(string errorMessage)
{
CPH.LogError($"{LOG_PREFIX}{errorMessage}");
}
private void LogInfo(string infoMessage)
{
CPH.LogInfo($"{LOG_PREFIX}{infoMessage}");
}
private void LogVerbose(string verboseMessage)
{
CPH.LogVerbose($"{LOG_PREFIX}{verboseMessage}");
}
}
Reading the logs in real-time
There are different ways for you to read the log file. Usually you'll want to do this in real-time, which is known as file tailing. You can do it multiple ways. Here are the two I know of:
- Notepad++ has a built-in function for tailing a log file
- [Linux] terminal command has
tail -f
- (My personal preference) [Windows] PowerShell has a similar function to
tail -f
calledGet-Content
I've built an import code for Streamer.bot which will automatically open today's log in PowerShell and automatically show new lines in real-time.
Opening Streamer.bot Logs in PowerShell
Requirements
- Streamer.bot
- (optional) Windows Terminal
- (optional) PowerShell 7
Import Code
Download openLogInPowershell.sb file
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
Usage
In the the action Open Log in Powershell 1. On Streamer.bot Start
, by default is configured to color code the PowerShell window based on the log level of each line as you can see in this screenshot:
Color Configuration
PowerShell can display colors found in this article: PowerShell Write-Host ForegroundColor parameter
However, if you desire, you can add Set Argument sub-actions to designate certain keywords and color code lines containing the keyword. Set Argument sub-actions higher up in the order will have higher priority and will be that color first.