![Debug.Log Extensions](https://assetstorev1-prd-cdn.unity3d.com/key-image/f3778cfe-201b-4c55-be06-df7dd562b261.jpg)
Enhance the Debug class with numerous improvements that can greatly improve readability of the Console view and save a lot of time by enabling more compact debugging code to be used.Enhance the Debug class with numerous improvements that can greatly improve readability of the Console view and save a lot of time by enabling more compact debugging code to be used.This is a plug & play solution; all Debug commands in your classes will automatically switch to using the new and improved versions.▶ Forum - Have new feature ideas or any questions? Let us know here.—— FEATURES ——☑ Clean ConsoleStack traces are no longer shown for every entry in the Console list.This greatly improves readability.☑ Syntax HighlightingYour console messages are automatically augmented withcolorful syntax highlighting, improving readability even more.☑ Automatic ContextThe context Object is automatically determined for your messages whenever possible to help with locating message sources.☑ ChannelsPrefix a log message with a tag inside square brackets to tie it to a specific channel, then show/hide all messages from specific channels.☑ Debug.Log(()=>field)A new compact syntax can be used to log both the name and value of a field to the console.☑ Debug.LogState(target)Easily print the full state of a target to the console.☑ Debug.LogChanges(()=>field)Have messages be printed automatically whenever the value of a field changes.☑ Debug.DisplayOnScreen(()=>field)Easily display the name and current value of any field on the screen.☑ Debug.LogToFile(message, path)Easily output messages into text files instead of the console.☑ Dev.Log(message)Just like Debug.Log except all calls are omitted from release builds.☑ Critical.Log(message)Useful for important messages you don't want getting lost in the shuffle; uses a larger font, full stack trace and always gets recorded in a log file.☑ Personal ChannelUse your personal channel to log messages that are by default omitted from all users except for you.☑ Highly CustomizableThorough customization options allow you to configure everything to fit your team as well as your personal preferences.☑ Source Code IncludedComes with a unity package containing full source code and a convenient DLL builder window.☑ Console+ WindowAs an added freebie bonus you get an augmented Console window with a convenient channel dropdown menu and a lot of other enhancements.—— USAGE EXAMPLES ——☹ Before:Debug.Log(nameof(target)+"="+(target == null ? "null" : target.ToString()), this);☑ After:Debug.Log(()=>target);⚠ Prints:target=Player☹ Before:string message = "MyClass state:\n";message += "speed=" + speed + "\n";message += "target=" + (target == null ? "null" : target.ToString()) + "\n";message += "progress=" + progress;Debug.Log(message, this);☑ After:Debug.LogState(this);⚠ Prints:MyClass state:speed=5target=nullprogress=0.25☹ Before:void Update(){if(myField != lastValue){Debug.Log("myField="+(lastValue = myField)+"\n(was: "+lastValue+")", this);lastValue = myField;}}☑ After:Debug.LogChanges(()=>myField);⚠ Prints:myField=5(was: 4)myField=6(was: 5)...—— INSTALLATION ——Once you have installed Debug.Log Extensions you will be asked whether or not you would like to replace the default Debug class across the project.If you choose "Yes" and some classes in your project contain the statement "using Debug = UnityEngine.Debug;" it can prevent the project from compiling.To fix this you just need to remove the statements from your code - they should no longer be necessary when using Debug.Log Extensions anyways.Alternatively you can opt not to replace the default Debug class. In this case you will need to add "using Debug = Sisus.Debugging.Debug;" in any classes where you want to enable Debug.Log Extensions' enhancements.☑ Console+ Window☑ Channels☑ Debug.Log(()=>field)☑ Debug.LogState(target)☑ Debug.LogChanges(()=>field)☑ Debug.DisplayOnScreen(()=>field)☑ Debug.LogIf(condition, message)☑ Debug.Ensure(condition, message)☑ Debug.Guard(condition, message)☑ Debug.LogToFile(message, path)☑ Dev.Log(message)☑ Critical.Log(message)☑ Personal Channel☑ Colorful Syntax Highlighting☑ Clean Log Entries☑ Automatic Context☑ Highly Customizable☑ Source Code Included