Print debugging statement: Difference between revisions

added python language section
(added python language section)
Line 399:
The line numbers 3, 4, 6, 7, and 9 are returned for five of the seven calls.
 
=={{header|Python}}==
 
Python's builtin [https://docs.python.org/3.8/library/logging.html logging module] allows extensive customization of output format and destination.
<lang python>
import logging, logging.handlers
 
LOG_FILENAME = "logdemo.log"
FORMAT_STRING = "%(levelname)s:%(asctime)s:%(name)s:%(funcName)s:line-%(lineno)d: %(message)s"
LOGLEVEL = logging.DEBUG
'''
CRITICAL 50
ERROR 40
WARNING 30 **DEFAULT
INFO 20
DEBUG 10
NOTSET 0
'''
 
def print_squares(number):
logger.info("In print_squares")
for i in range(number):
print("square of {0} is {1}".format(i , i*i))
logger.debug(f'square of {i} is {i*i}')
 
def print_cubes(number):
logger.info("In print_cubes")
for j in range(number):
print("cube of {0} is {1}".format(j, j*j*j))
logger.debug(f'cube of {j} is {j*j*j}')
 
if __name__ == "__main__":
 
logger = logging.getLogger("logdemo")
logger.setLevel(LOGLEVEL)
handler = logging.FileHandler(LOG_FILENAME)
handler.setFormatter(logging.Formatter(FORMAT_STRING))
logger.addHandler(handler)
 
print_squares(10)
print_cubes(10)
 
logger.info("All done")
</lang>
{{out}}<b>Contents of logdemo.log</b>
<pre>
INFO:2020-06-27 22:10:21,130:logdemo:print_squares:line-17: In print_squares
DEBUG:2020-06-27 22:10:21,132:logdemo:print_squares:line-20: square of 0 is 0
DEBUG:2020-06-27 22:10:21,238:logdemo:print_squares:line-20: square of 1 is 1
DEBUG:2020-06-27 22:10:21,347:logdemo:print_squares:line-20: square of 2 is 4
DEBUG:2020-06-27 22:10:21,451:logdemo:print_squares:line-20: square of 3 is 9
DEBUG:2020-06-27 22:10:21,557:logdemo:print_squares:line-20: square of 4 is 16
DEBUG:2020-06-27 22:10:21,662:logdemo:print_squares:line-20: square of 5 is 25
DEBUG:2020-06-27 22:10:21,770:logdemo:print_squares:line-20: square of 6 is 36
DEBUG:2020-06-27 22:10:21,880:logdemo:print_squares:line-20: square of 7 is 49
DEBUG:2020-06-27 22:10:21,982:logdemo:print_squares:line-20: square of 8 is 64
DEBUG:2020-06-27 22:10:22,090:logdemo:print_squares:line-20: square of 9 is 81
INFO:2020-06-27 22:10:22,195:logdemo:print_cubes:line-24: In print_cubes
DEBUG:2020-06-27 22:10:22,196:logdemo:print_cubes:line-27: cube of 0 is 0
DEBUG:2020-06-27 22:10:22,298:logdemo:print_cubes:line-27: cube of 1 is 1
DEBUG:2020-06-27 22:10:22,406:logdemo:print_cubes:line-27: cube of 2 is 8
DEBUG:2020-06-27 22:10:22,512:logdemo:print_cubes:line-27: cube of 3 is 27
DEBUG:2020-06-27 22:10:22,614:logdemo:print_cubes:line-27: cube of 4 is 64
DEBUG:2020-06-27 22:10:22,716:logdemo:print_cubes:line-27: cube of 5 is 125
DEBUG:2020-06-27 22:10:22,824:logdemo:print_cubes:line-27: cube of 6 is 216
DEBUG:2020-06-27 22:10:22,932:logdemo:print_cubes:line-27: cube of 7 is 343
DEBUG:2020-06-27 22:10:23,037:logdemo:print_cubes:line-27: cube of 8 is 512
DEBUG:2020-06-27 22:10:23,145:logdemo:print_cubes:line-27: cube of 9 is 729
INFO:2020-06-27 22:10:23,249:logdemo:<module>:line-41: All done
 
</pre>
=={{header|Pyret}}==