##### SUMMARY
It seems that no_log works only with bare boolean values and attempts to use jinja conditions will silently evaluate it as false, producing undesired results.

##### ISSUE TYPE
- Bug Report

##### COMPONENT NAME
<!--- Write the short name of the module, plugin, task or feature below, use your best guess if unsure -->
lib/ansible/plugins/callback

##### ANSIBLE VERSION
<!--- Paste verbatim output from "ansible --version" between quotes -->
```paste below
2.10 (devel)
```

##### STEPS TO REPRODUCE
<!--- Describe exactly how to reproduce the problem, using a minimal test-case -->

<!--- Paste example playbooks or commands between quotes below -->
```yaml
#!/usr/bin/env ansible-playbook -vv
- hosts: localhost
  tasks:

    - shell: seq 10
      register: result
      no_log: result is success
```

<!--- HINT: You can paste gist.github.com links for larger files -->

##### EXPECTED RESULTS
`no_log` should respect the condition mentioned there. 

If the evaluation happens before the task is executed it should give an error complaining that the result is not defined. 

Either way putting a condition that is silently ignored produce confusion to the users, with undesired outcomes. 

I think it is a common desired to have commands that are silent when succesful and verbose when failing, so you can debug them. Current implementation of no_log makes this impossible.


##### ACTUAL RESULTS

<!--- Paste verbatim command output between quotes -->
```paste below
TASK [shell] ************************************************************************************************************************************************************************
task path: /Users/ssbarnea/c/opendev/me/demo-no_log.yml:5
Monday 10 February 2020  12:34:28 +0000 (0:00:00.626)       0:00:00.737 *******
changed: [localhost] => {
    "changed": true,
    "cmd": "seq 10",
    "delta": "0:00:00.009089",
    "end": "2020-02-10 12:34:29.124658",
    "rc": 0,
    "start": "2020-02-10 12:34:29.115569"
}

STDOUT:

1
2
3
4
5
6
7
8
9
10
META: ran handlers
META: ran handlers
```

if attribute.isa == 'string':
            value = to_text(value)
        elif attribute.isa == 'int':
            value = int(value)
        elif attribute.isa == 'float':
            value = float(value)
        elif attribute.isa == 'bool':
            value = boolean(value, strict=False)
        elif attribute.isa == 'percent':
            
            
            if isinstance(value, string_types) and '%' in value:
                value = value.replace('%', '')
            value = float(value)
        elif attribute.isa == 'list':
            if value is None:
                value = []
            elif not isinstance(value, list):
                value = [value]
            if attribute.listof is not None:
                for item in value:
                    if not isinstance(item, attribute.listof):
                        raise AnsibleParserError("the field '%s' should be a list of %s, "
                                                 "but the item '%s' is a %s" % (name, attribute.listof, item, type(item)), obj=self.get_ds())
                    elif attribute.required and attribute.listof == string_types:
                        if item is None or item.strip() == "":
                            raise AnsibleParserError("the field '%s' is required, and cannot have empty values" % (name,), obj=self.get_ds())
        elif attribute.isa == 'set':