I believe it is possible to implement this with a single volatile memory read:

    @volatile var initialized: Boolean = false

    if (!initialized) {
      initialized.synchronized { // <- this is OK despite var
        if (!initialized) {
           initialize()
           initialized = true
        }
      }
    }

May be preferable to a mysterious initLogging() call, but does still incur some cost.