'Look for \'LOG = logging.getLogger\'.
This handles the simple case:
name = [logging_module].getLogger(...)
- or -
name = [i18n_name](...)
And some much more comple ones:
name = [i18n_name](...) % X
- or -
self.name = [i18n_name](...) % X'

def visit_Assign(self, node):

    attr_node_types = (ast.Name, ast.Attribute)
    if ((len(node.targets) != 1) or (not isinstance(node.targets[0], attr_node_types))):
        return super(CheckForTranslationIssues, self).generic_visit(node)
    target_name = self._find_name(node.targets[0])
    if (isinstance(node.value, ast.BinOp) and isinstance(node.value.op, ast.Mod)):
        if (isinstance(node.value.left, ast.Call) and isinstance(node.value.left.func, ast.Name) and (node.value.left.func.id in self.i18n_names)):
            node = ast.Assign(value=node.value.left)
    if (not isinstance(node.value, ast.Call)):
        self.assignments.pop(target_name, None)
        return super(CheckForTranslationIssues, self).generic_visit(node)
    if (isinstance(node.value.func, ast.Name) and (node.value.func.id in self.i18n_names)):
        self.assignments[target_name] = node.value.func.id
        return super(CheckForTranslationIssues, self).generic_visit(node)
    if ((not isinstance(node.value.func, ast.Attribute)) or (not isinstance(node.value.func.value, attr_node_types))):
        return super(CheckForTranslationIssues, self).generic_visit(node)
    object_name = self._find_name(node.value.func.value)
    func_name = node.value.func.attr
    if ((object_name in self.logger_module_names) and (func_name == 'getLogger')):
        self.logger_names.append(target_name)
    return super(CheckForTranslationIssues, self).generic_visit(node)
