Logger API

This API is available by embedding LibDebugLog-1.0 into your addon or any table you want. It makes the target a "logger".

Embedding

Using AceAddon-3.0

local addon = LibStub('AceAddon-3.0'):new('MyAddon', 'LibDebugLog-1.0')

function addon:SomeMethod()
  self:Debug('We are in SomeMethod')
end

Manual embedding

local t = {}
LibStub('LibDebugLog-1.0'):Embed(t)

t:Debug('Debug !')

Mixin API

:Debug( msg [, ...] )

Sends a debug log message. msg is converted to string. If more arguments are provided, they are converted to strings. If msg contains at least one '%', sends msg:format(...), else join all arguments.
-- Sends "my debug"
self:Debug('my debug') 

-- Sends "one two three nil 5"
self:Debug('one', 'two', 'three', nil, 5) 

-- Sends "key=5 flag=true ref=nil"
self:Debug('key=%s flag=%s ref=%s', 5, true, nil)

:ToggleDebugLog( enable )

Enable debug logging if enable is true.

:IsDebugLogEnabled()

Returns true if debug logs are enabled.

Library API

These methods have to be called from the library itself, e.g. :
LibStub('LibLogDebug-1.0'):SetGlobalToggle(false)

:Embed(broker)

Add the embeddable API into the broker and registers the broker.

:SetGlobalToggle( enable )

Forcibly set the log state of all registered brokers. Possible values of enable are:
true
forcibly enable debug log.
false
forcibly disable debug log.
nil
restores each broker state.

:GetGlobalToggle()

Returns the current state of the global toggle.

:GetAce3OptionTable( logger[, order] )

Returns a table to be used as an AceConfig3 option table.
function addon:OnInitialize()
  local options = {
    name = 'MyAddon',
    type = 'group',
    handler = self,
    args = {
      enable = {
        name = 'Enable',
        type = 'toggle',
        get = 'IsEnabled',
        set = 'EnableAddon',
        order = 100,
      },
      debug = LibStub('LibLogDebug-1.0'):GetAce3OptionTable(self, 110),
      -- put other useful options here
    }
  }
  LibStub("AceConfig-3.0"):RegisterOptionsTable(self.name, options)
end

Comments

Posts Quoted:
Reply
Clear All Quotes