simpler _getDict with guards; correctly skip logger serialization