Variable Data
When creating logs it will be useful if we had the option to use variables to make a more meaningful log record. While we can create variables that hold our string, we can also create logs that directly access a variable we require.
import logging
user_name = "Christopher"
logging.warning("%s encountered a warning message", user_name)
This is the output:
![]()
We created a variable to store the user’s name. ‘%s’ is used to add one string within another string, and it also automatically converts it to a string. If we want to add more strings, we need to exact number ‘%s’ operators and in the correct position as well.
It is also not necessary to use the ‘%s” operator, we can also use f strings.
import logging
threat_type = "Firewall Systems"
logging.critical(f"{threat_type} has been breached")
This will give us the output:
![]()
Let’s consider an example of this:
import logging, time
custom_log_format = "%(levelname)s: => %(message)s"
logging.basicConfig(
level=logging.DEBUG, # specifying the minimum severity level
filename="logFile.log", # name of the file to write our log on to
filemode="w", # file opening mode
format=custom_log_format # format the output
)
# Starting counter
start_time = time.time()
# Raise an error
logging.critical("Error occurred!")
# End counter
run_time = time.time() - start_time
logging.info(f"The program crashed in {round(run_time, 3)} seconds.")
When we run this, the code will generate a text file with the following text:

What have we learned?
- How can we create a log that uses variables?
- What is the use of the “%s” operator?