myLogging.py 1.5 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273
  1. #! /usr/bin/env python3
  2. #
  3. # Define standard logging functions
  4. #
  5. import sys
  6. import os
  7. import time
  8. # Class of log levels, in increasing level of verbosity
  9. class LogLevels:
  10. none, error, warn, info, debug = range(5)
  11. # default log level
  12. logLevel = LogLevels.info
  13. #
  14. # Helper functions
  15. #
  16. def get_progname():
  17. """Get program name"""
  18. try:
  19. progname = os.path.basename(__file__)
  20. except NameError:
  21. progname = "no_program_name"
  22. return progname
  23. def get_gmt_asc():
  24. """Return current time as ascii string """
  25. return(time.asctime(time.gmtime()))
  26. def format_log_message(message, type):
  27. """Format a log message"""
  28. return(get_gmt_asc() + " " + get_progname() + ": " + type + ": " + message + "\n")
  29. #
  30. # Logging functions
  31. #
  32. def error(message):
  33. """Print an warrning message"""
  34. if logLevel >= LogLevels.error:
  35. sys.stderr.write(format_log_message(message, "error"))
  36. def warn(message):
  37. """Print an warrning message"""
  38. if logLevel >= LogLevels.warn:
  39. sys.stderr.write(format_log_message(message, "warning"))
  40. def info(message):
  41. """Print an info message"""
  42. if logLevel >= LogLevels.info:
  43. sys.stdout.write(format_log_message(message, "info"))
  44. def debug(message):
  45. """Print an warrning message"""
  46. if logLevel >= LogLevels.debug:
  47. sys.stderr.write(format_log_message(message, "debug"))
  48. def main():
  49. info("This is an info message")
  50. warn("This is a warning message")
  51. error("This is an error message")
  52. debug("This is an debug message")
  53. #main()