Logging In OCI Ansible Module¶
OCI Ansible Collection uses Python’s logging facilities for logging.
By default, logging will be disabled.
Note: Logging using environment variables takes higher priority
What determines Logging is enabled¶
Logging level & where the logs will be shown or captured, determines logging is enabled or not.
Logging level is determined based on environment variable or verbosity levels of OCI Ansible Module
By default, logs will be shown on console. To capture logs in a file instead of console, use environment variable to set the path to a directory where the log file containing logs should be placed.
Set Logging level Using Environment variable¶
To set the logging level, export environment variable named
OCI_ANSIBLE_LOG_LEVEL
.LOG_LEVEL
is deprecated.
$ export OCI_ANSIBLE_LOG_LEVEL="INFO"
If
OCI_ANSIBLE_LOG_LEVEL
is not set, then logging level is determined using verbosity of OCI Ansible Module and if verbosity is not set then logging will be disabledIf
OCI_ANSIBLE_LOG_LEVEL
= “WARNING”, then logging level will beWARNING
If
OCI_ANSIBLE_LOG_LEVEL
= “INFO”, then logging level will beINFO
If
OCI_ANSIBLE_LOG_LEVEL
= “DEBUG”, then logging level will beDEBUG
. At this level, request logging in OCI-Python-Sdk will be enabled
Set Logging level Using Verbosity of OCI Ansible Module¶
Set the verbosity for OCI Ansible modules to set the logging level. On console, use -v flag while executing ansible playbook or calling OCI Ansible modules using adhoc commands. Look at the below example to see how to pass -v flag on console while executing ansible playbook and adhoc command respectively
#playbook
ansible-playbook -v sample.yaml
#ansible adhoc command
ansible -v localhost -m oracle.oci.some_module -a 'param1="val1" param2="val2"'
If verbosity is 0(i.e. -v flag is not passed), then logging level will be based on either environment variable and if environment variable is not set then logging will be disabled
If verbosity is 1(i.e. -v can be passed), then logging level will be
WARNING
If verbosity is 2(i.e. -vv can be passed), then logging level will be
INFO
If verbosity is 3 or higher(i.e. -vvv, -vvvv, etc. can be passed), then logging level will be
DEBUG
. At this level, request logging in OCI-Python-Sdk will be enabled
Logs on Console¶
By default, log will be shown on console. Logs will be collected in a list & will be shown in oci_ansible_logs
key
together with the result of OCI Ansible module
Capture logs in a file using environment variable¶
Export environment variable named
OCI_ANSIBLE_LOG_DIR
.LOG_PATH
is deprecatedLogs will be collected in a file called
oci_ansible_module.log
instead of console.Set
OCI_ANSIBLE_LOG_DIR
to a path to the directory where the log fileoci_ansible_module.log
will be placed.
$ export OCI_ANSIBLE_LOG_DIR="path_to_the_directory"
If
OCI_ANSIBLE_LOG_DIR
exists, thenIf
oci_ansible_module.log
file doesn’t exist in the directory set above, thenoci_ansible_module.log
file will be created in the directory set above and all the logs will be collected in that file. So logs can be accessed atpath_to_the_directory/oci_ansible_module.log
If
oci_ansible_module.log
file exists in the directory set above and the file has a write access, then logs will be appended in that file. So logs can be accessed atpath_to_the_directory/oci_ansible_module.log
If
oci_ansible_module.log
file exists in the directory set above and the file doesn’t have a write access, then logs won’t be captured in a file. Logging will be disabled in this case
Else logs won’t be captured in a file & logging will be disabled in this case
Enable Request Logging in OCI-Python-Sdk¶
Set the logging level to DEBUG
either using environment variables or verbosity of Ansible Modules to enable request
logging in OCI-Python-Sdk