Over 11,000 five-star assets

Rated by 85,000+ customers

Supported by 100,000+ forum members

Every asset moderated by Unity

Home
Tools
Utilities
1/7
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.
Render pipeline compatibility
The Built-in Render Pipeline is Unity’s default render pipeline. It is a general-purpose render pipeline that has limited options for customization. The Universal Render Pipeline (URP) is a Scriptable Render Pipeline that is quick and easy to customize, and lets you create optimized graphics across a wide range of platforms. The High Definition Render Pipeline (HDRP) is a Scriptable Render Pipeline that lets you create cutting-edge, high-fidelity graphics on high-end platforms.
Unity VersionBuilt-inURPHDRP
2021.3.4f1
Compatible
Compatible
Compatible
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 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.

Technical details

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​

Debug.Log Extensions

(9)
106 users have favourite this asset
(106)
$9.99
Seat
1
Updated price and taxes/VAT calculated at checkout
51 views in the past week
Refund policy
This asset is covered by the Unity Asset Store Refund Policy. Please see section 2.9.3 of the EULA for details.
Secure checkout:
Supported payment methods: Visa, Mastercard, Maestro, Paypal, Amex
License type
File size
4.2 MB
Latest version
1.3.1
Latest release date
Dec 4, 2024
Original Unity version
2021.3.4
Support
Visit site
Quality assets
Over 11,000 five-star assets
Trusted
Rated by 85,000+ customers
Community support
Supported by 100,000+ forum members
Unity logo
Language
Feedback
Partners Program
Partners
USD
EUR
Copyright © 2025 Unity Technologies
All prices are exclusive of tax
USD
EUR