Skip to content

Releases: Shiva-Shadowsong/loggie

v1.5

01 Dec 21:26
028d8db
Compare
Choose a tag to compare

πŸ“š Repository πŸ“š User Guide πŸ’¬ Loggie Discord - Support & Development

🌟 Features

  • New Setting: Enforce Optimal Settings in Production

    This setting allows you to choose whether you want Loggie to enforce optimal values for certain settings when it detects that it's running in a release/production build. Previously, this was always done (except if you used custom_settings.gd, due to a bug which is fixed in this patch).

    Settings enforced by this are: TerminalMode.PLAIN and BoxCharactersMode.COMPATIBLE, which may be changed in the future.

  • Message Segmentation

    This is a new feature that lets you segment a message into multiple parts during a single chain of customizations - and apply your customizations only to the currently active segment. You can start a new segment with msg or endseg.

    So for example, this is now possible:

    Loggie.msg("Segment1: ").color("orange").msg("Segment2").info()

    Which results in:

    https://i.imgur.com/U7YIAJN.png

  • New Method: LoggieMsg.tab(amount = 1), which similarly to methods like space and nl, add the provided amount of tab characters to the end of the current message segment.

🐞 Bugfixes

  • Fix a mistake where the separator placeholder in LoggieMsg.prefix was not used correctly.
  • Fix an issue where timestamps no longer had leading zero padding.
  • Fix a memory leak that was the result of LoggieSettings being an orphan Node. This class now inherits from Resource instead.
  • Fix issue where Loggie would only enforce production-only settings if you weren't using custom_settings.gd. Now it works in any case, but there is a new setting that allows you to manage this.

πŸ–₯️ Developers

  • Fix instances where function parameter names were using the same names as other existing members of those classes, resulting in Godot warnings.
  • Added more tests related to coloring.

πŸ›‘ Breaking Changes

  • The parameter LoggieMsg.content has changed from being a String to being an Array.

    Because it now stores each segment of the message as an entry in this array. Related functionalities remain the same - and LoggieMsg.string(segment) can now either return the full message or one specified segment of it.

  • The variable LoggieMsg.original_content and methods related to it have been removed.

    Ultimately, this implementation proved to be somewhat obscure and unnecessary, thus is being removed to reduce bloat.

    Goodbye original_content ... no one will miss you (probably). πŸ‘‹

Loggie v1.4

02 Nov 11:55
Compare
Choose a tag to compare

πŸ“š Repository πŸ“š User Guide πŸ’¬ Loggie Discord - Support & Development

🌟 Features

  • New Setting: Remove Settings If Plugin Disabled - Allows users to specify whether their Loggie related ProjectSettings should be erased from Godot when the plugin gets disabled.

The erasure of these settings was a default behavior before, and it will remain so, unless this setting is explicitly turned off by the user. This feature is very useful during Loggie development, as well as during the process of patching loggie - as patches might require you to disable and re-enable the addon for some new features to get initialized, and it would be a shame to lose all your settings if you are configuring Loggie through ProjectSettings. Alternatively, look into using custom_settings.gd. More info about that here.

  • New Project Settings Category: Formats.
    It is now possible to modify the formatting of most message types (including timestamps) and prefixes / suffixes via the ProjectSettings. The formatting method used everywhere is String.format which will also make these template formats easier to understand and modify.

feature screenshot

πŸ’ͺ Improvements

  • When downloaded from the AssetLib, Loggie should no longer download any other files excepts the addons/ directory in this repository.
  • Loggie now automatically uses "Compatible" box characters in release builds.
  • Loggie now initializes during _init instead of _ready, ensuring that it will be configured and available for use during the _init function of other scripts that are loading during similar time as Loggie. (As before, Loggie should ideally be set as the first autoload in the Global/Autoloads order to prevent any other issues).
  • Explicitly set all Loggie ProjectSettings to be considered non-advanced settings in the ProjectSettings window.

🐞 Bugfixes

  • Add an extra layer of safety to LoggieMsg output methods to protect against potential crashes if something goes wrong with Loggie.settings.
  • Fixed LoggieSystemSpecs.embed_script_data not embedding content within the message that called it.

πŸ–₯️ Developers

  • Fixed issues with the Test.gd print_talker_scripts_data() fn.
  • Update the used Loggie project settings in Loggie Project to values which are friendlier for developers.

Developers will usually be interested in having most of the loggie custom formats and outputs enabled, as well not have to worry about losing their settings when the plugin is disabled (since Loggie development calls for frequent disabling and re-enabling of the plugin).

Loggie v1.3

19 Oct 10:18
Compare
Choose a tag to compare

πŸ“š Repository πŸ“š User Guide πŸ’¬ Loggie Discord - Support & Development

This is a hotfix patch to take care of a high priority issue.

🐞 Bugfixes

  • Critical: Fixed an issue where a function tried to refer to the Loggie class via a typehint in a moment when it isn't certain that the 'Loggie' class is available (e.g. plugin might not be enabled), causing a cascade of errors in situations like fresh installation.

Loggie v1.2

11 Oct 13:31
Compare
Choose a tag to compare

πŸ“š Repository πŸ“š User Guide πŸ’¬ Loggie Discord - Support & Development

🌟 Features

  • New Shortcuts: You can now use Loggie.error(...), Loggie.info(...), Loggie.notice(...), Loggie.warn(...) and Loggie.debug(...) wrappers to directly output at a log level. Useful for when you want to quickly output and don't care about applying additional LoggieMsg modifiers.

  • New Setting: Nameless Class Name Proxy - allows users to specify what kind of substitute gets printed if 'Derive and Display Class Names From Scripts' is enabled, but a script doesn't have a 'class_name'.

  • New Signal: Loggie.log_attempted - Emitted any time Loggie attempts to log a message, letting you know the result of the attempt and what the attempted message is. Useful for when you want to capture log data from Loggie for external use.

πŸ’ͺ Improvements

  • Loggie can now be used while running only in editor (during @tool scripts, etc.)
  • The Show Loggie Specs setting has been updated to allow a selection between:
    • Don't show loggie specs
    • Show essential loggie specs
    • Show advanced (all) loggie specs
  • The Derive and Display Class Names feature has been significantly changed, gaining on performance because it is no longer using FileAccess read to peek into scripts if your version of Godot supports the Script.get_global_name (4.3+ versions). It automatically detects whether it can use this optimization and does it if possible, still retaining the support for the previous approach for backwards compatibility. Loggie now also pre-reads the names of its own singleton and all autoload class names.

βš™οΈ Adjustments

  • The Show Loggie Specs setting now also encompasses the Loggie boot message.
  • When preprocessing a derived class name, LoggieMsg no longer prepends anything to the content if the class name is an empty string.

🐞 Bugfixes

  • Fixed an issue where restarting Godot would cause Loggie settings to revert to defaults.
  • Fixed an issue with retaining the configuration for the custom ProjectSettings generated by Loggie between multiple engine runs.
  • Fix a wrong comparison that could've caused an error message to be printed unnecessarily.

πŸ–₯️ Developers

  • Testing props are now stored in their own directory.
  • Improved the state and structure of the testing script.
  • Enums are now found in the LoggieEnums class.

Loggie v1.1

03 Oct 02:34
59da69b
Compare
Choose a tag to compare

πŸ“š Repository πŸ“š User Guide πŸ’¬ Loggie Discord - Support & Development

🌟 Features

  • New Feature: Loggie singleton name can now be set through the LoggieSettings.loggie_singleton_name static variable.
  • New Setting: Show Loggie Specs - allows users to specify whether some specs about Loggie's current settings should be output when Loggie boots.

πŸ’ͺ Improvements

  • Loggie now uses more LoggieMsg functions to compose its own outputs.
  • LoggieMsg.add is now more flexible.

🐞 Bugfixes

  • Fixed an issue where, when first installing the plugin, errors would appear due to the Loggie singleton still missing (until it gets added by enabling the plugin).

πŸ›‘ Breaking Changes

  • The function LoggieMsg.append has been removed.

Loggie v1.0

02 Oct 07:24
Compare
Choose a tag to compare

Loggie Logo

Loggie is a basic logging utility for Godot 4.0+ for those who could use a couple of improvements and more control over how console and logfile output is styled and handled.

It makes it a breeze to compose and print messages with all the extra data you need to have helpful logs.

Loggie takes care that your logs always look clean in release builds, while allowing you to use extra styling for console targeted output. ANSI-compatible, and friendly both for solo developers and developers in a team (externally loaded settings for each developer).

If you need something simple but effective, Loggie is your guy.

πŸ“š Repository

πŸ“š User Guide

πŸ’¬ Loggie Discord - Support & Development