Download
(15 Kb)
Download
Updated: 07/30/23 03:53 PM
Pictures
File Info
Compatibility:
Necrom (9.0.0)
Scribes of Fate (8.3.5)
Updated:07/30/23 03:53 PM
Created:02/26/19 10:22 AM
Monthly downloads:28,464
Total downloads:2,757,542
Favorites:1,407
MD5:
LibDebugLogger  Popular! (More than 5000 hits)
Version: 2.5.1
by: sirinsidiator [More]
This library provides facilities to log debug output in the background without running the risk of it showing in the chat output. It can also be very helpful in debugging issues out in the wild, since it will store the output into its saved variable file. It will automatically log information about the current client. During startup the library will use the settings overrides defined in StartUpConfig.lua, until the saved variables become available.

The log output can be inspected with the help of the DebugLogViewer add-on or the external Log Viewer.

Features

Client Information
The library will automatically log the following information about a character on login:
  • account name - in case you play with multiple accounts and that is somehow causing issues (e.g. with the saved variables)
  • character name - in case the problem occurs due to switching characters or due to some special characters in the name
  • login time - in case a problem occurs a fixed time after logging in on the character
  • client version - hope that doesn't need an explanation
  • mega server - in case of server specific issues
  • service type - steam or non-steam in case that makes a difference
  • UI type - keyboard or console UI is quite an important detail
  • ESO+ - changes how some APIs react
  • language - in case it is some localization problem
  • out of date checkbox state - good to know when someone has an issue with some add-on not loading
  • add-on count - how many are active and how many are installed
  • add-on load events - this gives information about the load order of your add-ons, the loaded add-on version and which subdirectory of the add-on folder it was loaded from

In addition it will also log Lua errors, add-on output done via the in-game debug functions d(), df() and CHAT_SYSTEM:AddMessage(), alert messages in the error category, loading screens and more based on the configuration in StartUpConfig.lua.

Stack Traces
Usually only Lua errors contain a stack trace, but the library can be configured to log the stack trace for any message. Due to the fact that saved settings are not available until after an add-on has fully loaded, the library will default to log everything during login and switch to the configured settings afterwards.

Logger Class
Authors can create a logger object which can be used to log messages of different severity (debug/info/warning/error). Those messages will be marked with the tag passed to the logger on creation and can be easily filtered that way.

A logger can create any number of sub-instances which will use the original tag with another part appended. This can be useful for big add-ons with many components, or when some very verbose logging should be disabled for a release version without having to remove all calls to the logger.

Quick Start
Add LibDebugLogger as a dependency to your add-on manifest:
Code:
## DependsOn: LibDebugLogger>=180
Afterwards you can create a logger instance and start logging messages like so:
Lua Code:
  1. local logger = LibDebugLogger("MyAddon")
  2. logger:Debug("A debug message")
  3. logger:Info("An", "info", "message") -- multiple arguments are passed through tostring and concatenated with a space in between
  4. logger:Warn("A %s message: %d", "formatted", 123) -- if the first parameter contains formatting strings, the logger will pass all arguments through string.format instead
  5. local subLogger = logger:Create("verbose") -- this will create a separate logger with a combined tag "MyAddon/verbose".
  6. subLogger:SetEnabled(false) -- turn the new logger off
  7. subLogger:Error("An error message") -- this won't show up

Settings
The /debuglogger slash command can be used to configure what should get logged or show the current settings when no value is passed to a setting.

/debuglogger stack <on/off> - when turned on, the library will log the stack trace for the logger call. Can be very useful to figure out where a log is coming from.

/debuglogger level <d(ebug)/i(nfo)/w(arning)/e(rror)> - determines the minimum severity for logs to be stored

/debuglogger clear - will delete all stored logs

LibDebugLogger will automatically remove old logs after one day, or when the total amount surpasses 11k entries.

API Reference

LibDebugLogger.DEFAULT_SETTINGS
This constant contains the default settings for the library. The contained values should not be changed.

LibDebugLogger.TAG_INGAME
This constant contains the tag that is used to log messages that are generated by in-game methods (Lua Errors, chat debug output, alerts).

Log Levels
The values of the available log levels are stored in the following constants:
  • LibDebugLogger.LOG_LEVEL_VERBOSE = "V"
  • LibDebugLogger.LOG_LEVEL_DEBUG = "D"
  • LibDebugLogger.LOG_LEVEL_INFO = "I"
  • LibDebugLogger.LOG_LEVEL_WARNING = "W"
  • LibDebugLogger.LOG_LEVEL_ERROR = "E"
The log levels are also stored in the LibDebugLogger.LOG_LEVELS array in order of their severity.
There are also two mappings LibDebugLogger.LOG_LEVEL_TO_STRING and LibDebugLogger.STR_TO_LOG_LEVEL which can be used to convert the level values into untranslated lowercase strings and back.

The different log levels serve different purposes which authors should keep in mind when they add log output.
  • LOG_LEVEL_VERBOSE is not logged unless explicitly white-listed in the StartUpConfig.lua. It should be used for messages that are printed very often and are not of much interest to other parties.
  • LOG_LEVEL_DEBUG is not logged by default and can be used for anything that helps identifying a problem, but is not of interest during regular operation.
  • LOG_LEVEL_INFO is the default log level and should be used to log messages that give a rough idea of the flow of events during regular operation. It is also used for logging d() messages.
  • LOG_LEVEL_WARNING should be used to log messages that could potentially lead to errors. Ingame alert messages of the UI_ALERT_CATEGORY_ERROR are logged as warnings.
  • LOG_LEVEL_ERROR should usually not be used by addons, except when they suppress the ingame error message via pcall. UI errors are otherwise automatically logged with this level.

Log Entry Indices
A log entry is a numerically indexed table with the following values:
  1. raw timestamp in milliseconds
  2. human readable time
  3. occurrence count
  4. log level
  5. tag
  6. message
  7. stack trace (optional)
To use the values one can either use the unpack function and assign them to variables, or directly access them with the following index constants:
  • LibDebugLogger.ENTRY_TIME_INDEX
  • LibDebugLogger.ENTRY_FORMATTED_TIME_INDEX
  • LibDebugLogger.ENTRY_OCCURENCES_INDEX
  • LibDebugLogger.ENTRY_LEVEL_INDEX
  • LibDebugLogger.ENTRY_TAG_INDEX
  • LibDebugLogger.ENTRY_MESSAGE_INDEX
  • LibDebugLogger.ENTRY_STACK_INDEX
  • LibDebugLogger.ENTRY_ERROR_CODE_INDEX

Create
This function will return an instance of a logger. Anything logged via that instance will automatically contain the tag for easy identification.
Code:
local logger = LibDebugLogger.Create("MyAddon")
or
Code:
local logger = LibDebugLogger:Create("MyAddon")
or
Code:
local logger = LibDebugLogger("MyAddon")
Logger:Create
Convenience method to create a new instance of the logger with a combined tag. Can be used to separate logs from different files. Anything logged via that instance will automatically contain the parent tag and the child tag separated by a slash (e.g. MyAddon/SomeFile).

Code:
local subLogger = logger:Create("SomeFile")
Logger:SetEnabled
Setter to turn this logger off, so it no longer adds anything to the log when one of its log methods is called.

Code:
logger:SetEnabled(false)
Logger:SetMinLevelOverride
Setter to define a non-persistent override for the minimum log level from the global configuration. Passing nil clears the override value.
This method is intended to allow authors to provide users with a way to temporarily enable debug logging on a per-addon basis (e.g. via a LAM button).

Code:
logger:SetMinLevelOverride(LibDebugLogger.LOG_LEVEL_DEBUG)
Logger:SetLogTracesOverride
Setter to define a non-persistent override for the stack trace logging from the global configuration. Passing nil clears the override value.
This method is intended to allow authors to provide users with a way to temporarily enable debug logging on a per-addon basis (e.g. via a LAM button).

Code:
logger:SetLogTracesOverride(true)
Logger:Log
Method to log messages with the passed log level. The first argument has to be a valid log level. If the second argument is a formatting string, the method will call string.format, otherwise each argument will get passed through tostring and concatenated with a space.

Code:
logger:Log(LibDebugLogger.LOG_LEVEL_DEBUG, "My formatted message: %s", "some text")
logger:Log(LibDebugLogger.LOG_LEVEL_DEBUG, "My", "combined", "message")
Logger:Verbose
Method to log messages with the verbose log level. See Log method for details on how messages are formatted. Verbose messages are not logged unless explicitly white-listed in StartUpConfig.lua.

Logger:Debug
Method to log messages with the debug log level. See Log method for details on how messages are formatted.

Logger:Info
Method to log messages with the info log level. See Log method for details on how messages are formatted.

Logger:Warn
Method to log messages with the warning log level. See Log method for details on how messages are formatted.

Logger:Error
Method to log messages with the error log level. See Log method for details on how messages are formatted.

SESSION_START_TIME
Contains the time when the client was started in milliseconds.
Code:
local sessionStartTime = LibDebugLogger.SESSION_START_TIME
UI_LOAD_START_TIME
Contains the approximate time when the UI has started loading in milliseconds. There is currently no way to get the real time, so instead this is just the time when LibDebugLogger.lua is executed first, which can be happen several seconds after the actual UI load start. Since the purpose of this function is to provide a way to discern log messages that have been created in the current UI load, this is fine.
Code:
local uiLoadStartTime = LibDebugLogger.UI_LOAD_START_TIME
IsTraceLoggingEnabled
Returns true if the library is set to capture stack traces for all messages.
Code:
local isTraceLoggingEnabled = LibDebugLogger:IsTraceLoggingEnabled()
SetTraceLoggingEnabled
Sets stack traces capturing for all messages enabled or disabled.
Code:
LibDebugLogger:SetTraceLoggingEnabled(enabled)
GetMinLogLevel
Returns the minimum log level.
Code:
local minLogLevel = LibDebugLogger:GetMinLogLevel()
SetMinLogLevel
Sets the minimum log level. Has to be one of the values in the LOG_LEVELS constant.
Code:
LibDebugLogger:SetMinLogLevel(level)
GetLog
Returns the current log table.
Code:
LibDebugLogger:GetLog()
ToggleFormattingErrors
When toggled on, the log handler will append errors in case the first argument was interpreted as a formatting string, but the subsequent call to string.format failed. This is purely for the convenience of authors who try to debug their log output and as such it doesn't have a corresponding setting.
Intended use is either via "/script d(LibDebugLogger:ToggleFormattingErrors())" or in StartUpConfig.lua
Returns the new state.
Code:
LibDebugLogger:ToggleFormattingErrors()
ClearLog
Clears the log by creating a new table.
Code:
LibDebugLogger:ClearLog()
SetBlockChatOutputEnabled
Function to block showing chat debug messages created via d(), df() or CHAT_SYSTEM:AddMessage() in the regular chat. Can be used by other add-ons that display the log content, to avoid having the messages show up twice on screen. Should be called as early as possible.
Code:
LibDebugLogger:SetBlockChatOutputEnabled(enabled)
IsBlockChatOutputEnabled
Returns true if chat debug messages are blocked from showing in chat.
Code:
local isBlocked = LibDebugLogger:IsBlockChatOutputEnabled()
CombineSplitStringIfNeeded
This method rebuilds the input string in case it has been split up to circumvent the saved variables string length limit.
Code:
input = LibDebugLogger.CombineSplitStringIfNeeded(input)
RegisterCallback
The library fires callbacks whenever the log is modified. Callbacks should be as lightweight as possible. If you plan to use expensive calls, defer the execution with zo_callLater!
Callback names are available via the LibDebugLogger.callback table and are defined in Callbacks.lua.
Code:
LibDebugLogger:RegisterCallback(callbackName, callback)
callback.LOG_CLEARED
This callback is fired when the log is wiped by the user or an addon. Passes the reference to the empty log.
Code:
LibDebugLogger:RegisterCallback(LibDebugLogger.callback.LOG_CLEARED, function(log)
    -- do something
end)
callback.LOG_PRUNED
This callback is fired after a new message was added and the log contains too many entries.
This pruning is necessary to prevent the log from growing too large to be loaded on login.
Pruning will create a new log table and the startIndex passed to the callback is the first index in the old log table that will be kept in the new log.
Code:
LibDebugLogger:RegisterCallback(LibDebugLogger.callback.LOG_PRUNED, function(startIndex)
    -- do something
end)
callback.LOG_ADDED
This callback is fired whenever a log entry is added. The entry parameter is the data as stored in the log and wasDuplicate is true when the entry had the same message, level and stack trace as the previous one and only the time and occurrence count was adjusted.
Code:
LibDebugLogger:RegisterCallback(LibDebugLogger.callback.LOG_CLEARED, function(entry, wasDuplicate)
    -- do something
end)
v2.5.1
- fixed error when launching game through epic store

v2.5.0
- added preliminary support for storing newly introduced errorCode (NOTE: stacktrace can now be an empty string instead of nil)
- updated for Necrom

v2.4.1
- added a warning when baseobjects have been modified with a __call meta method
- renamed LibDebugLogger.lua to StartUp.lua to avoid people mistaking it for the saved variable file

v2.4.0
- added optional feature to append the stacktrace of the registation to any stacktrace logged inside a zo_callLater call (enabled via StartUpConfig.lua)
- added optional capture of stacktraces for "TopLevelControl cannot be parented to any control but GuiRoot" errors where possible (enabled together with the previous new feature)
- added optional logging of latency, fps and memory usage every 10 seconds (enabled via StartUpConfig.lua)
- added flag to StartUpConfig.lua to ignore saved settings
- renamed StartUpConfig.lua to StartUpConfig.example.lua and uncommented settings so users can simply rename the file to enable full logging
- filter combat alerts based on their sound id so they no longer show up as warnings
- keep first occurrence of an entry in the log when logging repetitions so both the first and last timestamp can be seen
- updated for High Isle

v2.3.0
- added new api functions Logger:SetMinLevelOverride and Logger:SetLogTracesOverride to allow authors to temporarily enable debug logging for their addon (see description for more details)
- updated for Deadlands

v2.2.0
- added additional information to startup logging
- updated for Blackwood

v2.1.2
- fixed incorrect addon version (thanks esran!)

v2.1.1
- log end of initial loading screen on info level so it shows correctly in the external log viewer when using the default configuration
- updated for Markarth

v2.1.0
- added new function to dynamically change the sub tag of a Logger (see Logger:SetSubTag)
- added a way to append internal formatting errors at the end of the log output (see lib:ToggleFormattingErrors)
- modified Create function so it can be called both ways (lib.Create or lib:Create)
- updated for Greymoor

v2.0.0
- reorganized code into multiple files
- disabled logging stack traces and debug log level by default during UI load
- added StartUpConfig.lua which should be used by authors to define settings used during UI load
- improved startup logging to include some additional information
- added new log level "verbose" which has to be whitelisted in StartUpConfig.lua. See API Reference for details when to use which log level.
- added new method Log() to logger which accepts a log level as first argument.
- deprecated lib.CALLBACK_* constants. Use lib.callback.* defined in callbacks.lua instead
- deprecated GetSessionStartTime. Use lib.SESSION_START_TIME instead
- deprecated GetUiLoadStartTime. Use lib.UI_LOAD_START_TIME instead

v1.1.1
- updated for chat system changes in game version 5.3.5
- fixed incorrect arguments in fallback message logging
- added assertion to prevent creating a logger without a tag, which would cause trouble for DebugLogViewer

v1.1.0
- added new APIs (see description for full details)
* settings functions
* getters for session and ui start time
* function to rebuild split log strings
* various constants, enums and variables
* callbacks for log modifications
- improved slash command settings menu
- reuse provided stack trace from Lua errors when possible
- update last logging time on identical log messages
- added chat debug output logging
- added ingame error alert logging
- added loading screens logging
- added IsLibrary flag

v1.0.2
- prune log during session before it grows too big to load on next login
- store identical messages following after one another only once and start counting afterwards
- some minor code and performance improvements

v1.0.1
- added a safeguard to ensure logging an error won't ever create more errors
- added more debug information to startup log (e.g. platform, ui, addon paths, ...)
- fixed LibDebugLogger("MyAddon") passing the wrong argument as tag
Archived Files (14)
File Name
Version
Size
Uploader
Date
2.5.0
15kB
sirinsidiator
04/17/23 04:51 PM
2.4.1
15kB
sirinsidiator
06/15/22 02:28 PM
2.4.0
15kB
sirinsidiator
06/10/22 01:01 PM
2.3.0
14kB
sirinsidiator
11/01/21 10:09 AM
2.2.0
14kB
sirinsidiator
06/01/21 11:38 AM
2.1.2
13kB
sirinsidiator
11/12/20 12:32 PM
2.1.1
13kB
sirinsidiator
11/12/20 10:37 AM
2.1.0
13kB
sirinsidiator
04/21/20 02:45 PM
2.0.0
12kB
sirinsidiator
04/10/20 11:24 AM
1.1.1
7kB
sirinsidiator
03/02/20 12:10 PM
1.1.0
7kB
sirinsidiator
06/01/19 08:23 AM
1.0.2
5kB
sirinsidiator
03/16/19 04:39 AM
1.0.1
4kB
sirinsidiator
03/04/19 12:10 PM
1.0.0
4kB
sirinsidiator
02/26/19 10:22 AM


Post A Reply Comment Options
Unread 02/11/24, 09:30 AM  
Anceane
 
Anceane's Avatar
AddOn Author - Click to view AddOns

Forum posts: 306
File comments: 1017
Uploads: 1
Can you confirm me that i can approve the page Logviewer to check libdebuglogger savedvar, as i have post hook error and try to find which addon do this (128 alerts)

i tried and got the Dangerous Web Page Blocked. I know that usually i approve but in that case i prefer to ask you.

Thank you

Decided to approve your page and go through for the futur.

So please do not take care of this post
Last edited by Anceane : 02/14/24 at 09:05 AM.
Report comment to moderator  
Reply With Quote
Unread 06/06/23, 02:00 PM  
sirinsidiator
 
sirinsidiator's Avatar
AddOn Author - Click to view AddOns

Forum posts: 1566
File comments: 1111
Uploads: 41
Re: Re: Re: Re: Still erroring...

Originally Posted by Tatanko
Originally Posted by hatsune681
I can confirm as I also had an error and was still using 2.4.1.
Something funny. I replaced
Code:
[GAMEPAD_TYPE_HERON] = "stadia gamepad",
by
Code:
[GAMEPAD_TYPE_STADIA] = "stadia gamepad",
and it starts without error
I tried this for myself and it seems to work without creating any new issues.
Please do yourself and everyone who depends on LibDebugLogger a favour and refrain from manually editing it. Instead install the latest version 2.5.0 that has been out for almost 2 months and works without any issues.
Report comment to moderator  
Reply With Quote
Unread 06/05/23, 04:57 PM  
hatsune681
AddOn Author - Click to view AddOns

Forum posts: 0
File comments: 29
Uploads: 3
Re: Re: Still erroring...

Originally Posted by sirinsidiator
You are still running the old version of the lib.

Originally Posted by Marcus
So LibDebugLogger gives me an error on PTS when I have it enabled. It happens at character login and not again until you relog or change characters.
Remove the quoted part...
[...]
I can confirm as I also had an error and was still using 2.4.1.
Something funny. I replaced
Code:
[GAMEPAD_TYPE_HERON] = "stadia gamepad",
by
Code:
[GAMEPAD_TYPE_STADIA] = "stadia gamepad",
and it starts without error 😂 (I didn't make any test to see if everything works)

Regards
Report comment to moderator  
Reply With Quote
Unread 04/19/23, 12:48 PM  
sirinsidiator
 
sirinsidiator's Avatar
AddOn Author - Click to view AddOns

Forum posts: 1566
File comments: 1111
Uploads: 41
Re: Still erroring...

You are still running the old version of the lib.

Originally Posted by Marcus
So LibDebugLogger gives me an error on PTS when I have it enabled. It happens at character login and not again until you relog or change characters.
Remove the quoted part...

Ok.. testing again to get the error numbers for Dolgubon's error... and it doesn't any more. LibDebugLogging does, however (enabled, reloaded, disabled, reloaded, enabled, reloaded... had to be sure this time!). So here's the details:


LibDebugLogger UI Error 25CD561D

user:/AddOns/LibDebugLogger/Initialization.lua:46: table index is nil
stack traceback:
user:/AddOns/LibDebugLogger/Initialization.lua:46: in function '(main chunk)'
Report comment to moderator  
Reply With Quote
Unread 04/18/23, 07:53 PM  
Marcus

Forum posts: 11
File comments: 88
Uploads: 0
Still erroring...

So LibDebugLogger gives me an error on PTS when I have it enabled. It happens at character login and not again until you relog or change characters.
Remove the quoted part...

But as soon as I disable it, Dolgubon's Writ Crafter throws an error instead, which wasn't seen at all when LibDebugLogger was running. Dolgubon's doesn't list LibDebugLogger as one of the libraries it uses, but from the description I'm guessing it's hiding the Dolgubon's error when it's loaded. Please let me know if I have that right.
Ok.. testing again to get the error numbers for Dolgubon's error... and it doesn't any more. LibDebugLogging does, however (enabled, reloaded, disabled, reloaded, enabled, reloaded... had to be sure this time!). So here's the details:


LibDebugLogger UI Error 25CD561D

user:/AddOns/LibDebugLogger/Initialization.lua:46: table index is nil
stack traceback:
user:/AddOns/LibDebugLogger/Initialization.lua:46: in function '(main chunk)'
Last edited by Marcus : 04/18/23 at 08:07 PM.
Report comment to moderator  
Reply With Quote
Unread 04/17/23, 05:11 PM  
Anceane
 
Anceane's Avatar
AddOn Author - Click to view AddOns

Forum posts: 306
File comments: 1017
Uploads: 1
THank you!! i was on PTS and kept having error from Libdebug itself
Report comment to moderator  
Reply With Quote
Unread 02/28/21, 09:36 AM  
Fenweldryn
AddOn Author - Click to view AddOns

Forum posts: 0
File comments: 13
Uploads: 1
Hey!
I would like to request and option to let the window auto open after reloadui, to be able to search the log text and to have a button to run the reloadui command on the log window =D

You did a great work with this addon! Thanks!
Last edited by Fenweldryn : 02/28/21 at 09:51 AM.
Report comment to moderator  
Reply With Quote
Unread 11/12/20, 04:33 PM  
sirinsidiator
 
sirinsidiator's Avatar
AddOn Author - Click to view AddOns

Forum posts: 1566
File comments: 1111
Uploads: 41
Originally Posted by Anceane
Originally Posted by sirinsidiator
Originally Posted by esran
Looks like there's been a regression of the AddonVersion?



I think AddOnVersion should be 211? pChat has a dependency on 196 and has stopped working following recent update to libDebugLogger.

Tested locally and chaning to 211 works nicely.
You are right. Looks like the version reset to an incorrect value. It's not tied to the semantic version though and simply represents a build number. I've uploaded a new version. Thanks for the report!
if 2.1.1 goes with 211, is that normal that 2.1.2 have 2.0.1 ? should not be 212 ? Just a question to be sure, logic has probably nothing to do here lol.
In my own addons the AddOnVersion is just a "build number" which doesn't relate to the version number seen on ESOUI and in Minion, so the human readable version being 2.1.1 doesn't mean the AddOnVersion I put in the manifest will be 211. The number is automatically increased by one every time I change some code and copy the new version into my addon folder. You can actually determine how often I failed and had to retry while writing a new feature when you compare it to the AddOnVersion in the previous release.
Report comment to moderator  
Reply With Quote
Unread 11/12/20, 03:36 PM  
Anceane
 
Anceane's Avatar
AddOn Author - Click to view AddOns

Forum posts: 306
File comments: 1017
Uploads: 1
Originally Posted by sirinsidiator
Originally Posted by esran
Looks like there's been a regression of the AddonVersion?



I think AddOnVersion should be 211? pChat has a dependency on 196 and has stopped working following recent update to libDebugLogger.

Tested locally and chaning to 211 works nicely.
You are right. Looks like the version reset to an incorrect value. It's not tied to the semantic version though and simply represents a build number. I've uploaded a new version. Thanks for the report!
if 2.1.1 goes with 211, is that normal that 2.1.2 have 2.0.1 ? should not be 212 ? Just a question to be sure, logic has probably nothing to do here lol.
Report comment to moderator  
Reply With Quote
Unread 11/12/20, 12:34 PM  
sirinsidiator
 
sirinsidiator's Avatar
AddOn Author - Click to view AddOns

Forum posts: 1566
File comments: 1111
Uploads: 41
Originally Posted by esran
Looks like there's been a regression of the AddonVersion?



I think AddOnVersion should be 211? pChat has a dependency on 196 and has stopped working following recent update to libDebugLogger.

Tested locally and chaning to 211 works nicely.
You are right. Looks like the version reset to an incorrect value. It's not tied to the semantic version though and simply represents a build number. I've uploaded a new version. Thanks for the report!
Report comment to moderator  
Reply With Quote
Unread 11/12/20, 12:27 PM  
esran

Forum posts: 0
File comments: 12
Uploads: 0
Looks like there's been a regression of the AddonVersion?

## Version: 2.1.1
## APIVersion: 100033 100034
## AddOnVersion: 189
I think AddOnVersion should be 211? pChat has a dependency on 196 and has stopped working following recent update to libDebugLogger.

Tested locally and chaning to 211 works nicely.
Report comment to moderator  
Reply With Quote
Unread 05/27/20, 10:44 AM  
Illutian

Forum posts: 0
File comments: 41
Uploads: 0
Originally Posted by sirinsidiator
Originally Posted by Illutian
Can't completely tell...because ESO's logging is a bit wonky to me. But it appears this addon still makes call the [now depreciated] LibStub addon.


-snip-
No, it's the other way around. LibStub logs a warning to LibDebugLogger so authors can find where it is called from. In this case it's EssentialHousingTools which calls LibStub.
xD

Like I said, it's wonky. I'm use to WoW's error logging, where the first addon mentioned is the cause and the rest are all collateral damage.

Off to EHT! - And thanks for the quick response.
Report comment to moderator  
Reply With Quote
Unread 05/27/20, 10:18 AM  
sirinsidiator
 
sirinsidiator's Avatar
AddOn Author - Click to view AddOns

Forum posts: 1566
File comments: 1111
Uploads: 41
Originally Posted by Illutian
Can't completely tell...because ESO's logging is a bit wonky to me. But it appears this addon still makes call the [now depreciated] LibStub addon.


stack traceback:
user:/AddOns/LibDebugLogger/LogHandler.lua:185: in function 'Log'
(tail call): ?
user:/AddOns/LibStub/LibStub/LibStub.lua:47: in function 'LogDeprecationWarning'
user:/AddOns/LibStub/LibStub/LibStub.lua:85: in function 'LibStub:GetLibrary'
user:/AddOns/EssentialHousingTools/ui.lua:17930: in function 'EHT.UI.RegisterHousingHubScene'
user:/AddOns/EssentialHousingTools/handlers.lua:93: in function 'EHT.Handlers.PlayerActivated'
[C]: in function 'pcall'
user:/AddOns/EssentialHousingTools/essentialhousingtools.lua:1898: in function 'EHT.SafeCall'
user:/AddOns/EssentialHousingTools/handlers.lua:200: in function 'EHT.Handlers.OnPlayerActivated'

I'm just looking at the lines with "LibDebugLogger". - Slowly making my rounds to other addons still using LibStub.
No, it's the other way around. LibStub logs a warning to LibDebugLogger so authors can find where it is called from. In this case it's EssentialHousingTools which calls LibStub.
Report comment to moderator  
Reply With Quote
Unread 05/27/20, 10:13 AM  
Illutian

Forum posts: 0
File comments: 41
Uploads: 0
Can't completely tell...because ESO's logging is a bit wonky to me. But it appears this addon still makes call the [now depreciated] LibStub addon.


stack traceback:
user:/AddOns/LibDebugLogger/LogHandler.lua:185: in function 'Log'
(tail call): ?
user:/AddOns/LibStub/LibStub/LibStub.lua:47: in function 'LogDeprecationWarning'
user:/AddOns/LibStub/LibStub/LibStub.lua:85: in function 'LibStub:GetLibrary'
user:/AddOns/EssentialHousingTools/ui.lua:17930: in function 'EHT.UI.RegisterHousingHubScene'
user:/AddOns/EssentialHousingTools/handlers.lua:93: in function 'EHT.Handlers.PlayerActivated'
[C]: in function 'pcall'
user:/AddOns/EssentialHousingTools/essentialhousingtools.lua:1898: in function 'EHT.SafeCall'
user:/AddOns/EssentialHousingTools/handlers.lua:200: in function 'EHT.Handlers.OnPlayerActivated'

I'm just looking at the lines with "LibDebugLogger". - Slowly making my rounds to other addons still using LibStub.
Report comment to moderator  
Reply With Quote
Unread 05/11/20, 01:55 PM  
Aenathel
 
Aenathel's Avatar
AddOn Author - Click to view AddOns

Forum posts: 8
File comments: 35
Uploads: 5
Hi. How do I disable all logging done by this library? Even setting the log level to errors only still produces a large amount of log messages that slow down loading, which really hurts when I'm doing /reloadui during add-on development.
Report comment to moderator  
Reply With Quote
Post A Reply



Category Jump:

Support AddOn Development!

You have just downloaded by the author . If you like this AddOn why not consider supporting the author? This author has set up a donation account. Donations ensure that authors can continue to develop useful tools for everyone.