⭐️⭐️⭐️⭐️⭐️ Debug.Log Extensions – Published By Sisus

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 debugg…

Keywords:

console, Debug, debugging, log, stack trace, replacement, Utility, Tool, Workflow, Guard, Ensure, assert, Stopwatch, framerate, channels

Short Description:

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 debugg…

Rating: ⭐️⭐️⭐️⭐️⭐️

Discount: None

Asset Title: Debug.Log Extensions

Publisher: Sisus

Category: tools, utilities

More Details about this asset:

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 Console

Stack traces are no longer shown for every entry in the Console list.

This greatly improves readability.


Syntax Highlighting

Your console messages are automatically augmented with

colorful syntax highlighting, improving readability even more.


Automatic Context

The context Object is automatically determined for your messages whenever possible to help with locating message sources.


Channels

Prefix 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 Channel

Use your personal channel to log messages that are by default omitted from all users except for you.


Highly Customizable​

Thorough customization options allow you to configure everything to fit your team as well as your personal preferences.


Source Code Included​

Comes with a unity package containing full source code and a convenient DLL builder window.


Console+​ Window

As 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=5

target=null

progress=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.

Leave a Reply