如何为我的脚本创建一个带有 python "logging" 模块的日志包?
How to create a logging package with python "logging" module for my scripts?
我正在尝试为我的 python 脚本创建一个日志包,允许我在 ELK 服务器上记录我的错误。问题是我无法创建我的 Logging class 的实例来让我的所有日志出现在脚本中。
在我的包文件中,我设置了一个处理程序,允许我从我的脚本中检索所有事件。问题是我不能仅通过 class 日志记录来使用我的日志消息。当调用已经在我的包中进行时,我被迫在我的每个模块中使用 python 日志包。
包日志
import logging
class Logging:
def __init__(self, module, scope, title):
self.module = module
self.scope = scope
self.title = title
def format_logs(self):
# Configuration Logging
logging.getLogger(__name__)
logging.basicConfig(filename=FILE, format='%(asctime)s :: %(levelname)s :: %(message)s', datefmt='%m/%d/%Y %I:%M:%S', level=logging.DEBUG)
# Setting up the listening file
logging.FileHandler(FILE)
示例脚本
from packages.pkg_logs import Logging
import logging
def __init__(self, url):
self.url = url
self.init_log = Logging(self.url, SCRIPT, TITLE)
self.set_handler = self.init_log.format_logs()
logging.info("Starting script : %s on : %s" % (TITLE, url))
等待您对解决方案的反馈。
您必须 return 来自自定义日志管理器的记录器实例。
示例:
log_mananger.py
class Logger:
def __init__(filename):
# set logging format
logging.basicConfig()
self.logger = logging.getLogger(filename=filename, format='set your custom format')
# set up listening file
self.logger.env=FILE
def get_logger():
return self.logger
script.py
from log_manager import Logger
logger = Logger().get_logger()
logger.info("message")
这应该没问题。
除此之外,如果您想从项目的不同部分登录到同一个文件,您可以将 LogManager 设置为单例 class 到 return 单例对象并登录同一个文件。
我正在尝试为我的 python 脚本创建一个日志包,允许我在 ELK 服务器上记录我的错误。问题是我无法创建我的 Logging class 的实例来让我的所有日志出现在脚本中。
在我的包文件中,我设置了一个处理程序,允许我从我的脚本中检索所有事件。问题是我不能仅通过 class 日志记录来使用我的日志消息。当调用已经在我的包中进行时,我被迫在我的每个模块中使用 python 日志包。
包日志
import logging
class Logging:
def __init__(self, module, scope, title):
self.module = module
self.scope = scope
self.title = title
def format_logs(self):
# Configuration Logging
logging.getLogger(__name__)
logging.basicConfig(filename=FILE, format='%(asctime)s :: %(levelname)s :: %(message)s', datefmt='%m/%d/%Y %I:%M:%S', level=logging.DEBUG)
# Setting up the listening file
logging.FileHandler(FILE)
示例脚本
from packages.pkg_logs import Logging
import logging
def __init__(self, url):
self.url = url
self.init_log = Logging(self.url, SCRIPT, TITLE)
self.set_handler = self.init_log.format_logs()
logging.info("Starting script : %s on : %s" % (TITLE, url))
等待您对解决方案的反馈。
您必须 return 来自自定义日志管理器的记录器实例。
示例:
log_mananger.py
class Logger:
def __init__(filename):
# set logging format
logging.basicConfig()
self.logger = logging.getLogger(filename=filename, format='set your custom format')
# set up listening file
self.logger.env=FILE
def get_logger():
return self.logger
script.py
from log_manager import Logger
logger = Logger().get_logger()
logger.info("message")
这应该没问题。
除此之外,如果您想从项目的不同部分登录到同一个文件,您可以将 LogManager 设置为单例 class 到 return 单例对象并登录同一个文件。