Search Unity

  1. Welcome to the Unity Forums! Please take the time to read our Code of Conduct to familiarize yourself with the forum rules and how to post constructively.
  2. We have updated the language to the Editor Terms based on feedback from our employees and community. Learn more.
    Dismiss Notice
  3. Join us on November 16th, 2023, between 1 pm and 9 pm CET for Ask the Experts Online on Discord and on Unity Discussions.
    Dismiss Notice

Console Enhanced - replacement for Unity's built-in console

Discussion in 'Assets and Asset Store' started by Mark-Currie, Nov 22, 2013.

  1. Mark-Currie

    Mark-Currie

    Joined:
    Sep 6, 2012
    Posts:
    53
    Last edited: Oct 6, 2015
    hopetolive likes this.
  2. andy_t

    andy_t

    Joined:
    Jun 7, 2013
    Posts:
    1
    It's really useful stuff you did! Cannot wait to buy it. The price sounds fine.

    BTW, when storing unity logs to external files in custom format (timestamps, categories etc.) I remove "UnityEngine.Debug.Log" and own log-library stack frames because they are useless there and make log reading only more difficult. You can do this easily too. Yeah, I've seen you have an ability to disable them but they are still there. Even if it leads to more complicated configuration than you have now, I think it's better because you need to configure it only once.
     
  3. Mark-Currie

    Mark-Currie

    Joined:
    Sep 6, 2012
    Posts:
    53
    Nice idea Andy. Currently non-important entries are grayed-out, but perhaps we could have a way to remove them entirely, perhaps having a small button to collapse those entries away. I'll think about adding this an update. Thanks for the feedback.
     
  4. Mark-Currie

    Mark-Currie

    Joined:
    Sep 6, 2012
    Posts:
    53
    *bump* Console Enhanced is now available in the Asset Store!
     
    Last edited: Sep 19, 2015
  5. Skjalg

    Skjalg

    Joined:
    May 25, 2009
    Posts:
    208
    This is really a great feature. Its a shame its not built into unity by default. Very nice of you to add it :)
     
    SAOTA likes this.
  6. antoine-agthe

    antoine-agthe

    Joined:
    Nov 1, 2012
    Posts:
    15
    Is this replace the actual Console completely ?
    Or does Debug.Log() writes log in two windows ?
     
  7. Mark-Currie

    Mark-Currie

    Joined:
    Sep 6, 2012
    Posts:
    53
    Debug.Log() entries are shown in both windows. You can use the Unity console window and ConsoleE window side-by-side.

    I'm looking for beta testers for ConsoleE version 2, it's very cool. Please PM me if you are interested in helping test it.
     
  8. eelstork

    eelstork

    Joined:
    Jun 15, 2014
    Posts:
    221
    Hi Mark,

    What I thought an obviously needed feature would be is filtering console output by entering a string.
    Is this open source? (I mean, if I buy this, can I modify the source so I can tweak it to my personal needs?)
     
  9. Mark-Currie

    Mark-Currie

    Joined:
    Sep 6, 2012
    Posts:
    53
    Yes, version 2 supports filtering the console output by entering a string.

    For version 1, I gave out the source. Giving out source increases support time. Knowing customers will see the code, I find myself obsessively refactoring the code, and my progress is slower. There are other issues which I won't go into here. Basically, based on my previous experience in giving out the source, I have decided try something different for version 2 in not giving out the source. I'm hoping that users will tell they want, and I will try to implement their features for the benefit of all users.

    I had one customer tell me they only buy assets with full source because they are required to have all the original source for their projects. Keep in mind that ConsoleE is an only an editor extension, no part of it is included with your app. It just a tool to help you be more productive.
     
  10. VeTaL

    VeTaL

    Joined:
    Jul 2, 2012
    Posts:
    125
    Version 2 is looking quite cool, keep up great work!
     
    Mark-Currie likes this.
  11. Mark-Currie

    Mark-Currie

    Joined:
    Sep 6, 2012
    Posts:
    53
    HUGE update was just released on the Asset Store! Also new is the free lite version. Even the free version is much better than the built-in Unity Console, so give it a try!

    This video explains the new features:
     
    Last edited: Sep 19, 2015
  12. Mark-Currie

    Mark-Currie

    Joined:
    Sep 6, 2012
    Posts:
    53
    tosiabunio likes this.
  13. kurismakku

    kurismakku

    Joined:
    Sep 18, 2013
    Posts:
    66
    Hi, I bought this asset, and I love it. :)

    How can I disable standard Unity console? Unity automatically changes focus to it, and I don't want to use it.
    I want that Console Enhanced is a complete replacement.

    It happened few times that I needed to reset Unity layout to factory settings.
    This caused that I needed to type again license for Console Enhanced to activate it, which is a bit frustrating since layout bugs often.

    Is there any way to avoid this?
    Thank you! :)
     
    Mark-Currie likes this.
  14. Mark-Currie

    Mark-Currie

    Joined:
    Sep 6, 2012
    Posts:
    53
    I'm working on a new feature that intercepts clicks to the status bar. If you click the status bar, the log message in ConsoleE will be selected -- and not the builtin console. If you download the "Beta Version" at http://unityconsole.com/Asset/Download, you'll see that feature in there.

    About your other problem, I will try to fix that in a future update. In the meantime, if you create a text file called "serialkey" (no filename extension), put this file next to ConsoleE.dll in your project. Then put your invoice number in the file. For that point, ConsoleE will pre-populate the dialog with your invoice number. This should make it less painful if you reset to factory settings.

    Thanks for the feedback!
     
    tosiabunio and kurismakku like this.
  15. Mark-Currie

    Mark-Currie

    Joined:
    Sep 6, 2012
    Posts:
    53
    Version 2.5 was released in March, I'm happy to say I got the status-bar-click interception feature in that one:
    http://unityconsole.com/blog/release-notes-v2.5

    On Friday, I released version 2.6. This version has bug fixes and small polish-related items. One new feature is that there's a little button that takes you to the first error in the log. Usually in Unity, the first error is the most important. But if for some reason you don't want this button, it can be removed in the Misc part of Tab settings. This is what it looks like, see the little button beneath the error icon? Click that to go to the first error.

    upload_2016-6-27_21-11-50.png
     

    Attached Files:

  16. kurismakku

    kurismakku

    Joined:
    Sep 18, 2013
    Posts:
    66
    Hey ! This new changes are great! Thank you for support this great asset. :)

    I have one problem, I don't know how to reactivate it? It used to ask me to type the license key but it doesn't anymore in new version.
     
  17. Mark-Currie

    Mark-Currie

    Joined:
    Sep 6, 2012
    Posts:
    53
    In ConsoleE's Advanced Settings, take a look at the license tab. Email if you need any help.
     
  18. Mark-Currie

    Mark-Currie

    Joined:
    Sep 6, 2012
    Posts:
    53
    It is supposed to work like this. It's possible you've encountered a bug with "Status bar clicks", I implemented this feature using a hack. Or you might have invalid serialization data stored in your window layout.

    Try this:

    Uncheck "Status bar clicks" in the Misc section. Restart Unity. Select a different layout in Layouts (choose a layout without any bugs), then recreate your preferred layout and save it using "Save Layout". Hopefully that fixes your problem but if not you could try "Revert Factory Settings", this will fully reset all layouts.
     
  19. Seith

    Seith

    Joined:
    Nov 3, 2012
    Posts:
    755
    Hello Mark, first I want to say that Console Enhanced has become a very useful part of our pipeline!

    I just have a little issue where after activating my copy (using the Unity invoice number) the line numbers have disappeared from the stack trace:



    So it seems that activating the copy allows you to double-click on the stack trace lines to open them but it takes away the line numbers. I don't know if it's a bug or by design, but could you please add an option where you would simply display the line number as usual even after Console Enhanced is activated?

    Cheers!
     
  20. vexe

    vexe

    Joined:
    May 18, 2013
    Posts:
    644
    Hey great asset! Is there any way to make the font bigger in the stack trace text area? or any way to customize how that looks in general? I always found the Unity way of displaying the callstack was not super friendly. I was using a custom window where each log entry is a button a bit friendlier I found.

    And, any way to set bold font on logs? Again easier to read.

    Love the smooth scrolling, the search bar and tag system! Wanted to write something similar for our company but this saved me the time, thanks!
     
  21. Deleted User

    Deleted User

    Guest

    @Mark-Currie Any way to wrap lines? I have some lines that are really long and I can't see what line numbers they are referring to because the end of the line is getting cut off.
     
  22. Mark-Currie

    Mark-Currie

    Joined:
    Sep 6, 2012
    Posts:
    53
    Version 3 is almost ready and it addresses much of what you guys have brought up, thanks for the feedback!

    @Seith, in the version you are using (2.6) you can uncheck "Hide Paths". In version 3, if you hold a modifier key (Cmd or Alt), it will show the path only while the key is held. Also if you try to open a file but it's not there, it will automatically show the path for that entry.

    @supremegrandruler, you cannot wrap callstack entries, this is by design. Wrapping callstack entries can look confusing in a way, so I decided to address the issue another way. Verison 3 has better horizontal scrolling support of the callstack. In V3, if you hold the middle mouse button (usually scroll button on Windows) it can scroll horizontally. On Macs, you can use touchpad scroll gestures to scroll, and that works fantastically. I haven't tried that on a Windows touchpad/touchscreen yet but it should also work well. In the meantime, in the current public version (2.6) if you click on the right side of the callstack and drag to invoke drag selection of text, it will eventually scroll to the right. It's not great, but it works, and if you wait for version 3, as I mentioned, it will work much better.

    @vexe version 3 has new callstack rendering options, including color schemes and two spacing modes. The more spacious mode looks like the text shown in the attached image.

    upload_2017-3-21_20-38-47.png

    I plan on posting a beta build of version 3 at the website in about a week. Cheers!
     
    Seith and Deleted User like this.
  23. Deleted User

    Deleted User

    Guest

    What about using arrow keys to scroll?
    Also I think it would be nice to have an option to wrap lines. The Unity console does it and I don't think it looks confusing.
    Maybe you could indent wrapped lines?
     
  24. Mark-Currie

    Mark-Currie

    Joined:
    Sep 6, 2012
    Posts:
    53
    Indenting the wrapped lines in the callstack is a nice idea (for people who prefer callstack wrapping). But supporting wrapping in the callstack is not trival, I don't want to delay the V3 release. I'll put your idea on my todo list for a future version.

    About arrow keys, that should be easy, I can quickly add that. Thanks for the ideas.
     
    Deleted User likes this.
  25. bjarkeck

    bjarkeck

    Joined:
    Oct 26, 2014
    Posts:
    301
    Absolutely love this product! Great work.

    You mentioned that the next version of ConsoleE would have even better support for external DLL's.

    "Any ConsoleE already has good support for external DLLs, but this support is about to get much better. Stay tuned!"

    Does this mean that double clicking a log messages will correctly identify the vs project associated with that file, and open / focus the correct instance of visual studio :cool:?

    Also, have any time-frame for when we can expect the next version?
     
    Mark-Currie likes this.
  26. Mark-Currie

    Mark-Currie

    Joined:
    Sep 6, 2012
    Posts:
    53
  27. Seith

    Seith

    Joined:
    Nov 3, 2012
    Posts:
    755
    (Just realized I didn't thank you for your reply. Cheers! :oops: )
     
    Mark-Currie likes this.
  28. Waz

    Waz

    Joined:
    May 1, 2010
    Posts:
    287
    I'm back again, begging for a horizontal mode...

    Good...



    Better...
     
    tosiabunio and Mark-Currie like this.
  29. Mark-Currie

    Mark-Currie

    Joined:
    Sep 6, 2012
    Posts:
    53
    Great idea Waz! I have a lot on my plate at the moment, but I'll try to get this at some point. Thanks for the idea.
     
  30. DrummerB

    DrummerB

    Joined:
    Dec 19, 2013
    Posts:
    136
    Hi,
    any ideas why the icons are invisible when selecting the Unity icon theme? I'm using 2018.1.

     
  31. Mark-Currie

    Mark-Currie

    Joined:
    Sep 6, 2012
    Posts:
    53
  32. Mark-Currie

    Mark-Currie

    Joined:
    Sep 6, 2012
    Posts:
    53
  33. FireMutant

    FireMutant

    Joined:
    Sep 2, 2013
    Posts:
    49
    Hi Mark-Currie,
    I just updated Unity to 2018.3.0b3. Console Enhanced crashes a lot even though I am using the most recent version 3.1.3. I know it is only a Unity Beta, so it is very recent. Do you have plans to release an update for Unity 2018.3 betas soon?

    I have become very dependant on Console Enhanced for an organized console. ;)

    Thanks!
     
  34. Mark-Currie

    Mark-Currie

    Joined:
    Sep 6, 2012
    Posts:
    53
    FireMutant likes this.
  35. PatrickLipo

    PatrickLipo

    Joined:
    Mar 14, 2015
    Posts:
    36
    Hi there! I've been trying the horizontal layout with the side-by-side error/callstack columns. It asked me at install time if I wanted it and I said "sure, let's give it a shot." Wellll I don't like it (I don't use a wide console window), but for the life of me I can't figure out how to change it back. I assume there's a way?
     
  36. Mark-Currie

    Mark-Currie

    Joined:
    Sep 6, 2012
    Posts:
    53
    @PatrickLipo It's here: Advanced Settings -> Callstack -> "Callstack on Bottom". I will update the user manual. Thanks.

    upload_2018-12-3_18-6-58.png
     
  37. Nirvan

    Nirvan

    Joined:
    Nov 16, 2013
    Posts:
    134
    Why it is switching to horizontal columns :( I am too much accustomed to have log details under logs
    Can't find way to reset it :|

    upload_2019-6-12_16-15-4.png

    Edit: Resizing console window helped
     
    Last edited: Nov 16, 2019
  38. Xarbrough

    Xarbrough

    Joined:
    Dec 11, 2014
    Posts:
    1,184
    I really like Console Enhanced! One tiny thing though: Is it possible to remove this small additional icon showing when there are error lines not selected?

    upload_2019-11-15_14-6-55.png
     
  39. sicklepickle

    sicklepickle

    Joined:
    Apr 8, 2012
    Posts:
    44
    Hiya, would be happy to buy the pro version if there was some kinda guarantee that the endless "CLICK TO FIX" issue has been dealt with?
    ATM it means I'm stuck just using both consoles and putting ConsoleE back how I like it every time I want to use the thing. (click to fix, scroll to the bottom and stay there, hide warnings...).
    Cheers.
     
    Last edited: Dec 11, 2020
  40. Mark-Currie

    Mark-Currie

    Joined:
    Sep 6, 2012
    Posts:
    53
    For me, CLICK TO FIX almost never happens. I think it happens if you use both consoles at the same time.

    Anyway, I think I can make it so that it never happens. I'll put that on the TODO list. Thanks for the feedback.
     
  41. Mark-Currie

    Mark-Currie

    Joined:
    Sep 6, 2012
    Posts:
    53
    @sicklebrick I looked into this.

    It happens when you disable a tab inside the default console. The way ConsoleE works, if you want to use both ConsoleE and the default console console side-by-side, you need to keep all the tabs enabled for the default console. What you are asking for is not easy to fix because of the way custom tabs work in the PRO version of ConsoleE. If you really need two console window instances at once, you could try using ConsoleE along with another replacement console, that probably would work.

    EDIT: I see your other comment in the review section, are you getting this when you make builds? Let me know the repro steps on when this happens for you and I'll see if I can reproduce it.
     
    Last edited: Jul 11, 2020
  42. sicklepickle

    sicklepickle

    Joined:
    Apr 8, 2012
    Posts:
    44
    sure, so:

    - Latest ConsoleE
    - Unity 2019.2
    - Plugins: Pro builder and the Google resolver

    - Console: Docked wherever, doesn't matter if it's visible or hidden
    - ConsoleE: Docked wherever, doesn't matter if it's visible or hidden

    - Disable warnings on the main tab.
    (Google's own plugins, various mediation partners plugins, etc are a mess, so this is unavoidable.)


    Immediately, ConsoleE will ask for "click to fix".
    This much is intentional I think, right?

    2 issues:

    1: (pretty minor) Now the bottom "status bar" will contain warning spam (as the original console has this enabled), sometimes obscuring something useful.

    2: Every so often I'll tab back to unity and "click to fix" will be back, ConsoleE won't be auto-scrolling to the bottom.

    I don't really want to use 2 consoles, but every so often unity freaks out and pops up the original one. (And if you're lucky it'll be somewhere visible).

    Cheers

    Edit:

    Hey, I feel like I'm going mad here, but it's stopped.
    -I didn't reimport ConsoleE's package.
    -I did import ConsoleE into this and a few other projects over the last 6 months.
    -I jiggled the windows around, but I didn't e.g. disable ConsoleE, etc.
    -I restarted unity... but after doing... what?

    The only thing I can think of is that I've literally just switched to from Rider to VSCode.
    That would be from Rider 2019.1 to 2020.something (e.g. when they switched their plugin format).
    Are there any known conflicts in that regard? (E.g. Rider's console redirection, etc).

    In any case, I'm just glad it's working again, sorry for the fuss, I'll go scrub that review and cross my fingers this takes. Thanks.
     
    Last edited: Jul 13, 2020
  43. jayatubi

    jayatubi

    Joined:
    Dec 9, 2013
    Posts:
    143
    How can I set the font size in the callstack window as well as the log list window?
     
  44. Mark-Currie

    Mark-Currie

    Joined:
    Sep 6, 2012
    Posts:
    53
    For the log list window, Advanced Settings->General->Font size

    The callstack has only two variants: normal and compact:

    Advanced Settings->General->Callstack->Compact Callstack

    To access Advanced Settings, right click on Console E's toolbar, or click the three small dots in the upper/right corner.
     
  45. jayatubi

    jayatubi

    Joined:
    Dec 9, 2013
    Posts:
    143
    Will there be a feature to set the font size of callstack in the future?
     
  46. jayatubi

    jayatubi

    Joined:
    Dec 9, 2013
    Posts:
    143
    BTW the log richtext tags in the content will not be rendered properly if I select a line in the callstack window.
     
  47. IARI

    IARI

    Joined:
    May 8, 2014
    Posts:
    70
    Hello there.
    I have not yet tried the enhanced console, but have a question regarding its features.

    The Problem:
    With async code, stack traces are completely unreadable due to all the bloat from the intermediate statemachine.
    A small stacktrace will look like this (typical ones might be hundreds of lines longer):

    System.ArgumentNullException: Value cannot be null.
    Parameter name: key
    at System.Collections.Generic.Dictionary`2[TKey,TValue].FindEntry (TKey key) [0x00008] in <eae584ce26bc40229c1b1aa476bfa589>:0
    at System.Collections.Generic.Dictionary`2[TKey,TValue].get_Item (TKey key) [0x00000] in <eae584ce26bc40229c1b1aa476bfa589>:0
    at Manager.PersistenceManager.ProfileAvatar (Common.Models.UserProfile profile) [0x00000] in E:\UnityProjects\logoleon-app\Assets\Scripts\Manager\PersistenceManager.cs:140
    at Manager.PersistenceManager.get_ActiveProfileAvatar () [0x00000] in E:\UnityProjects\logoleon-app\Assets\Scripts\Manager\PersistenceManager.cs:138
    at EditUserProfileScreen+<InitAvatarMenu>d__6.MoveNext () [0x00082] in E:\UnityProjects\logoleon-app\Assets\Scripts\Framework\Windows\EditUserProfileScreen.cs:30
    --- End of stack trace from previous location where exception was thrown ---
    at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw () [0x0000c] in <eae584ce26bc40229c1b1aa476bfa589>:0
    at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess (System.Threading.Tasks.Task task) [0x0003e] in <eae584ce26bc40229c1b1aa476bfa589>:0
    at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification (System.Threading.Tasks.Task task) [0x00028] in <eae584ce26bc40229c1b1aa476bfa589>:0
    at System.Runtime.CompilerServices.TaskAwaiter.ValidateEnd (System.Threading.Tasks.Task task) [0x00008] in <eae584ce26bc40229c1b1aa476bfa589>:0
    at System.Runtime.CompilerServices.TaskAwaiter.GetResult () [0x00000] in <eae584ce26bc40229c1b1aa476bfa589>:0
    at ConcurrencyUtils+<Logging>d__10.MoveNext () [0x00019] in E:\UnityProjects\logoleon-app\Assets\Common\ConcurrencyUtils.cs:84
    UnityEngine.Logger:Log (UnityEngine.LogType,object)
    ConcurrencyUtils:LogException (System.Exception) (at Assets/Common/ConcurrencyUtils.cs:32)
    ConcurrencyUtils/<Logging>d__10:MoveNext () (at Assets/Common/ConcurrencyUtils.cs:86)
    System.Runtime.CompilerServices.AsyncVoidMethodBuilder:Start<ConcurrencyUtils/<Logging>d__10> (ConcurrencyUtils/<Logging>d__10&)
    ConcurrencyUtils:Logging (System.Threading.Tasks.Task,bool)
    EditUserProfileScreen:Awake () (at Assets/Scripts/Framework/Windows/EditUserProfileScreen.cs:24)​


    Usually noone will want to see the stack entries from System.Threading.* or System.Runtime.*
    In tool like Rider (rsp. VS with resharper) you have the option to collapse certain stacktrace lines.
    By default in resharper System.Threading.* or System.Runtime.* are configured to be collapsed.

    Would it be possible to hide these stackframes with console enhanced?
    Collapsing would not even be necessary for me, if I could just filter them with a regex, or some simple match terms that would be sufficient.
    Anyways - this would be the primary motivation for a custom console inside the unity editor.
     
  48. Mark-Currie

    Mark-Currie

    Joined:
    Sep 6, 2012
    Posts:
    53
    Console Enhanced Pro has support for Wrapper Functions (Methods). You can mark specific methods as wrappers. Then they are grayed-out in the callstack. They are not collapsed, although that's a nice idea!

    If you double-click on a console entry, when deciding which source file to open, it scans the callstack. It automatically skips past any wrapper methods.

    The list of wrapper methods is a list. It doesn't use regex for matching -- that's kind of slow. Instead it uses String.Contains(). If you put an entry in the wrapper list as "System.Threading.", it will automatically mark all methods containing this string.

    But actually it is unnecessary to add an entries like this. If Console Enhanced cannot find the original source, it will automatically treat them as a wrapper methods. It will gray-out these methods automatically. Since System.Threading methods are built-in and their source is not readily available, they will automatically be grayed-out.

    If you take a look a Console Enhanced Free, you can see how the callstack looks when entries are grayed-out.
     
    IARI likes this.
  49. IARI

    IARI

    Joined:
    May 8, 2014
    Posts:
    70
    Thanks a lot for explaining, that helped a lot :)
    We will definitely check it out next year (this one is pretty much already planned to death ^^)
     
  50. Grumpy-Dot

    Grumpy-Dot

    Joined:
    Feb 29, 2016
    Posts:
    92
    @Mark-Currie Hello, really nice plugin, many thanks.
    From my side if would be better to be able to control when to show the horizontal columns.
    I would like to get this view (with 2 columns) all the time, regardless of the console window height.
    upload_2019-6-12_16-15-4.png