User Tools

Site Tools


Writing /var/lib/dokuwiki/data/meta/tutorials/python_development_standards.meta failed
tutorials:python_development_standards

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revisionPrevious revision
Next revision
Previous revision
tutorials:python_development_standards [2019/06/25 00:45] – [Logging] Add color section dgarciatutorials:python_development_standards [2022/09/20 00:08] (current) – external edit 127.0.0.1
Line 49: Line 49:
 Logging is a very important part of every software project, because it is the best way to deliver valuable information to our users. Logs are used to report errors, warnings, or just general information of how the program is executing. Good logs help us to discover why the program fails some times, they help us diagnose problems with our programs and help us plan strategies for improvement. It is crucial to maintain good and healthy logging practices so that you can increase the maintainability of your code. Logging is a very important part of every software project, because it is the best way to deliver valuable information to our users. Logs are used to report errors, warnings, or just general information of how the program is executing. Good logs help us to discover why the program fails some times, they help us diagnose problems with our programs and help us plan strategies for improvement. It is crucial to maintain good and healthy logging practices so that you can increase the maintainability of your code.
  
-Python developers, knowing that logs are so important, have developed a module just for this: the [[https://docs.python.org/3.7/library/logging.html|Logging]] module. There are 5 default levels of logging, ordered from most important to less important are: ''CRITICAL'', ''Error'', ''Warning'', ''Info'', ''Debug''.+Python developers, knowing that logs are so important, have developed a module just for this: the [[https://docs.python.org/3.7/library/logging.html|Logging]] module. It is very important that we use this tool and **Not plain prints**. Also, take into consideration that logging helpers are going to be removed from ''arcospyu'' very soon. There are 5 default levels of logging, ordered from most important to less important are: ''CRITICAL'', ''Error'', ''Warning'', ''Info'', ''Debug''.
  
 === Logging levels === === Logging levels ===
Line 118: Line 118:
 </code> </code>
  
-If you do not want to use `pip`, there are also [[https://packages.debian.org/jessie/python-colorlog| Debian]], [[https://launchpad.net/python-colorlog| Ubuntu]], and [[https://aur.archlinux.org/packages/python-colorlog/| AUR]] packages. For example for Debian, you can install with:+If you do not want to use ''pip'', there are also [[https://packages.debian.org/jessie/python-colorlog| Debian]], [[https://launchpad.net/python-colorlog| Ubuntu]], and [[https://aur.archlinux.org/packages/python-colorlog/| AUR]] packages. For example for Debian, you can install with:
  
 <code bash> <code bash>
-sudo apt install python-colorlog+sudo apt install python-colorlog python3-colorlog 
 +</code> 
 + 
 +Here you have an example of how to use `colorlog`: 
 + 
 +<code python> 
 +import colorlog 
 + 
 +# create the format object with colors. 
 +formatter = colorlog.ColoredFormatter( 
 + "%(asctime)s%(log_color)s%(levelname)-8s%(reset)s %(blue)s%(message)s", 
 + datefmt=None, 
 + reset=True, 
 + log_colors={ 
 + 'DEBUG':    'cyan', 
 + 'INFO':     'green', 
 + 'WARNING':  'yellow', 
 + 'ERROR':    'red', 
 + 'CRITICAL': 'red,bg_white', 
 + }, 
 + secondary_log_colors={}, 
 + style='%' 
 +
 + 
 +# Create the handler 
 +handler = colorlog.StreamHandler() 
 +# Add the formatter we created earlier 
 +handler.setFormatter(formatter) 
 + 
 +# Get a logger called "example". (It is created if it doesn't exist) 
 +logger = colorlog.getLogger("example"
 +# Add the colored formatter to the logger we just created 
 +logger.addHandler(handler) 
 + 
 +logger.error("This is an error"
 +logger.warning("This is a warning"
 +logger.info("This is an info (that you will not see)"
 +logger.debug("This a debug (that you will not see)")
 </code> </code>
 ===== Project Layout ===== ===== Project Layout =====
tutorials/python_development_standards.1561423559.txt.gz · Last modified: 2022/09/20 00:08 (external edit)