use Logger instead of PypeLogger

This commit is contained in:
Jakub Trllo 2022-08-24 15:52:47 +02:00
parent 7a1d161ab4
commit 882e00baef
26 changed files with 109 additions and 111 deletions

View file

@ -1455,7 +1455,7 @@ def get_workfile_info(
"""
## Custom data storage:
- Settings - OP settings overrides and local settings
- Logging - logs from PypeLogger
- Logging - logs from Logger
- Webpublisher - jobs
- Ftrack - events
- Maya - Shaders

View file

@ -4,6 +4,7 @@ from maya import cmds
import qargparse
from openpype.lib import Logger
from openpype.pipeline import (
LegacyCreator,
LoaderPlugin,
@ -50,9 +51,7 @@ def get_reference_node(members, log=None):
# Warn the user when we're taking the highest reference node
if len(references) > 1:
if not log:
from openpype.lib import PypeLogger
log = PypeLogger().get_logger(__name__)
log = Logger.get_logger(__name__)
log.warning("More than one reference node found in "
"container, using highest reference node: "

View file

@ -9,7 +9,7 @@ from abc import ABCMeta, abstractmethod, abstractproperty
import six
from openpype.api import PypeLogger
from openpype.lib import Logger
from openpype.modules import ModulesManager
@ -328,7 +328,7 @@ class TVPaintCommands:
def log(self):
"""Access to logger object."""
if self._log is None:
self._log = PypeLogger.get_logger(self.__class__.__name__)
self._log = Logger.get_logger(self.__class__.__name__)
return self._log
@property

View file

@ -12,9 +12,7 @@ from openpype.client import (
get_assets,
OpenPypeMongoConnection,
)
from openpype.lib import (
PypeLogger,
)
from openpype.lib import Logger
from openpype.lib.remote_publish import (
get_task_data,
ERROR_STATUS,
@ -23,7 +21,7 @@ from openpype.lib.remote_publish import (
from openpype.settings import get_project_settings
from openpype_modules.webserver.base_routes import RestApiEndpoint
log = PypeLogger.get_logger("WebpublishRoutes")
log = Logger.get_logger("WebpublishRoutes")
class ResourceRestApiEndpoint(RestApiEndpoint):

View file

@ -7,7 +7,7 @@ import json
import subprocess
from openpype.client import OpenPypeMongoConnection
from openpype.lib import PypeLogger
from openpype.lib import Logger
from .webpublish_routes import (
RestApiResource,
@ -28,7 +28,7 @@ from openpype.lib.remote_publish import (
)
log = PypeLogger.get_logger("webserver_gui")
log = Logger.get_logger("webserver_gui")
def run_webserver(*args, **kwargs):

View file

@ -24,7 +24,7 @@ from openpype.settings.constants import (
METADATA_KEYS,
M_DYNAMIC_KEY_LABEL
)
from . import PypeLogger
from .log import Logger
from .profiles_filtering import filter_profiles
from .local_settings import get_openpype_username
@ -138,7 +138,7 @@ def get_logger():
"""Global lib.applications logger getter."""
global _logger
if _logger is None:
_logger = PypeLogger.get_logger(__name__)
_logger = Logger.get_logger(__name__)
return _logger
@ -373,7 +373,7 @@ class ApplicationManager:
"""
def __init__(self, system_settings=None):
self.log = PypeLogger.get_logger(self.__class__.__name__)
self.log = Logger.get_logger(self.__class__.__name__)
self.app_groups = {}
self.applications = {}
@ -735,7 +735,7 @@ class LaunchHook:
Always should be called
"""
self.log = PypeLogger().get_logger(self.__class__.__name__)
self.log = Logger.get_logger(self.__class__.__name__)
self.launch_context = launch_context
@ -877,7 +877,7 @@ class ApplicationLaunchContext:
# Logger
logger_name = "{}-{}".format(self.__class__.__name__, self.app_name)
self.log = PypeLogger.get_logger(logger_name)
self.log = Logger.get_logger(logger_name)
self.executable = executable

View file

@ -5,7 +5,7 @@ import platform
import json
import tempfile
from .log import PypeLogger as Logger
from .log import Logger
from .vendor_bin_utils import find_executable
# MSDN process creation flag (Windows only)
@ -40,7 +40,7 @@ def execute(args,
log_levels = ['DEBUG:', 'INFO:', 'ERROR:', 'WARNING:', 'CRITICAL:']
log = Logger().get_logger('execute')
log = Logger.get_logger('execute')
log.info("Executing ({})".format(" ".join(args)))
popen = subprocess.Popen(
args,

View file

@ -6,11 +6,6 @@ import collections
import six
from .log import PypeLogger
log = PypeLogger.get_logger(__name__)
KEY_PATTERN = re.compile(r"(\{.*?[^{0]*\})")
KEY_PADDING_PATTERN = re.compile(r"([^:]+)\S+[><]\S+")
SUB_DICT_PATTERN = re.compile(r"([^\[\]]+)")

View file

@ -66,7 +66,7 @@ def publish(log, close_plugin_name=None, raise_error=False):
"""Loops through all plugins, logs to console. Used for tests.
Args:
log (OpenPypeLogger)
log (openpype.lib.Logger)
close_plugin_name (str): name of plugin with responsibility to
close host app
"""
@ -98,7 +98,7 @@ def publish_and_log(dbcon, _id, log, close_plugin_name=None, batch_id=None):
Args:
dbcon (OpenPypeMongoConnection)
_id (str) - id of current job in DB
log (OpenPypeLogger)
log (openpype.lib.Logger)
batch_id (str) - id sent from frontend
close_plugin_name (str): name of plugin with responsibility to
close host app

View file

@ -26,7 +26,7 @@ from openpype.settings.lib import (
get_studio_system_settings_overrides,
load_json_file
)
from openpype.lib import PypeLogger
from openpype.lib import Logger
# Files that will be always ignored on modules import
IGNORED_FILENAMES = (
@ -93,7 +93,7 @@ class _ModuleClass(object):
def log(self):
if self._log is None:
super(_ModuleClass, self).__setattr__(
"_log", PypeLogger.get_logger(self.name)
"_log", Logger.get_logger(self.name)
)
return self._log
@ -290,7 +290,7 @@ def _load_modules():
# Change `sys.modules`
sys.modules[modules_key] = openpype_modules = _ModuleClass(modules_key)
log = PypeLogger.get_logger("ModulesLoader")
log = Logger.get_logger("ModulesLoader")
# Look for OpenPype modules in paths defined with `get_module_dirs`
# - dynamically imported OpenPype modules and addons
@ -440,7 +440,7 @@ class OpenPypeModule:
def __init__(self, manager, settings):
self.manager = manager
self.log = PypeLogger.get_logger(self.name)
self.log = Logger.get_logger(self.name)
self.initialize(settings)
@ -1059,7 +1059,7 @@ class TrayModulesManager(ModulesManager):
)
def __init__(self):
self.log = PypeLogger.get_logger(self.__class__.__name__)
self.log = Logger.get_logger(self.__class__.__name__)
self.modules = []
self.modules_by_id = {}
@ -1235,7 +1235,7 @@ def get_module_settings_defs():
settings_defs = []
log = PypeLogger.get_logger("ModuleSettingsLoad")
log = Logger.get_logger("ModuleSettingsLoad")
for raw_module in openpype_modules:
for attr_name in dir(raw_module):

View file

@ -3,7 +3,7 @@ import requests
import six
import sys
from openpype.lib import requests_get, PypeLogger
from openpype.lib import requests_get, Logger
from openpype.modules import OpenPypeModule
from openpype_interfaces import IPluginPaths
@ -58,7 +58,7 @@ class DeadlineModule(OpenPypeModule, IPluginPaths):
"""
if not log:
log = PypeLogger.get_logger(__name__)
log = Logger.get_logger(__name__)
argument = "{}/api/pools?NamesOnly=true".format(webservice)
try:

View file

@ -7,12 +7,10 @@ import traceback
import ftrack_api
from openpype.lib import (
PypeLogger,
Logger,
modules_from_path
)
log = PypeLogger.get_logger(__name__)
"""
# Required - Needed for connection to Ftrack
FTRACK_SERVER # Ftrack server e.g. "https://myFtrack.ftrackapp.com"
@ -43,10 +41,13 @@ class FtrackServer:
server.run_server()
..
"""
# set Ftrack logging to Warning only - OPTIONAL
ftrack_log = logging.getLogger("ftrack_api")
ftrack_log.setLevel(logging.WARNING)
self.log = Logger.get_logger(__name__)
self.stopped = True
self.is_running = False
@ -72,7 +73,7 @@ class FtrackServer:
# Get all modules with functions
modules, crashed = modules_from_path(path)
for filepath, exc_info in crashed:
log.warning("Filepath load crashed {}.\n{}".format(
self.log.warning("Filepath load crashed {}.\n{}".format(
filepath, traceback.format_exception(*exc_info)
))
@ -87,7 +88,7 @@ class FtrackServer:
break
if not register_function:
log.warning(
self.log.warning(
"\"{}\" - Missing register method".format(filepath)
)
continue
@ -97,7 +98,7 @@ class FtrackServer:
)
if not register_functions:
log.warning((
self.log.warning((
"There are no events with `register` function"
" in registered paths: \"{}\""
).format("| ".join(paths)))
@ -106,7 +107,7 @@ class FtrackServer:
try:
register_func(self.session)
except Exception:
log.warning(
self.log.warning(
"\"{}\" - register was not successful".format(filepath),
exc_info=True
)
@ -141,7 +142,7 @@ class FtrackServer:
self.session = session
if load_files:
if not self.handler_paths:
log.warning((
self.log.warning((
"Paths to event handlers are not set."
" Ftrack server won't launch."
))
@ -151,8 +152,8 @@ class FtrackServer:
self.set_files(self.handler_paths)
msg = "Registration of event handlers has finished!"
log.info(len(msg) * "*")
log.info(msg)
self.log.info(len(msg) * "*")
self.log.info(msg)
# keep event_hub on session running
self.session.event_hub.wait()

View file

@ -1,6 +1,6 @@
import collections
from Qt import QtCore, QtGui
from openpype.lib.log import PypeLogger
from openpype.lib import Logger
class LogModel(QtGui.QStandardItemModel):
@ -41,14 +41,14 @@ class LogModel(QtGui.QStandardItemModel):
self.dbcon = None
# Crash if connection is not possible to skip this module
if not PypeLogger.initialized:
PypeLogger.initialize()
if not Logger.initialized:
Logger.initialize()
connection = PypeLogger.get_log_mongo_connection()
connection = Logger.get_log_mongo_connection()
if connection:
PypeLogger.bootstrap_mongo_log()
database = connection[PypeLogger.log_database_name]
self.dbcon = database[PypeLogger.log_collection_name]
Logger.bootstrap_mongo_log()
database = connection[Logger.log_database_name]
self.dbcon = database[Logger.log_collection_name]
def headerData(self, section, orientation, role):
if (

View file

@ -5,13 +5,10 @@ import os
from openpype.settings import get_project_settings
from openpype.lib.local_settings import OpenPypeSettingsRegistry
from openpype.lib import PypeLogger, run_subprocess
from openpype.lib import Logger, run_subprocess
from .rr_job import RRJob, SubmitFile, SubmitterParameter
log = PypeLogger.get_logger("RoyalRender")
class Api:
_settings = None
@ -19,6 +16,7 @@ class Api:
RR_SUBMIT_API = 2
def __init__(self, settings, project=None):
self.log = Logger.get_logger("RoyalRender")
self._settings = settings
self._initialize_rr(project)
@ -137,7 +135,7 @@ class Api:
rr_console += ".exe"
args = [rr_console, file]
run_subprocess(" ".join(args), logger=log)
run_subprocess(" ".join(args), logger=self.log)
def _submit_using_api(self, file):
# type: (SubmitFile) -> None
@ -159,11 +157,11 @@ class Api:
rr_server = tcp.getRRServer()
if len(rr_server) == 0:
log.info("Got RR IP address {}".format(rr_server))
self.log.info("Got RR IP address {}".format(rr_server))
# TODO: Port is hardcoded in RR? If not, move it to Settings
if not tcp.setServer(rr_server, 7773):
log.error(
self.log.error(
"Can not set RR server: {}".format(tcp.errorMessage()))
raise RoyalRenderException(tcp.errorMessage())

View file

@ -6,12 +6,11 @@ import concurrent.futures
from concurrent.futures._base import CancelledError
from .providers import lib
from openpype.lib import PypeLogger
from openpype.lib import Logger
from .utils import SyncStatus, ResumableError
log = PypeLogger().get_logger("SyncServer")
log = Logger.get_logger("SyncServer")
async def upload(module, project_name, file, representation, provider_name,

View file

@ -13,7 +13,7 @@ from openpype.settings import (
get_project_settings,
get_system_settings,
)
from openpype.lib import PypeLogger, get_local_site_id
from openpype.lib import Logger, get_local_site_id
from openpype.pipeline import AvalonMongoDB, Anatomy
from openpype.settings.lib import (
get_default_anatomy_settings,
@ -28,7 +28,7 @@ from .utils import time_function, SyncStatus, SiteAlreadyPresentError
from openpype.client import get_representations, get_representation_by_id
log = PypeLogger.get_logger("SyncServer")
log = Logger.get_logger("SyncServer")
class SyncServerModule(OpenPypeModule, ITrayModule):

View file

@ -2,7 +2,6 @@ from Qt import QtWidgets, QtCore, QtGui
from openpype.tools.settings import style
from openpype.lib import PypeLogger
from openpype import resources
from .widgets import (
@ -10,8 +9,6 @@ from .widgets import (
SyncRepresentationSummaryWidget
)
log = PypeLogger().get_logger("SyncServer")
class SyncServerWindow(QtWidgets.QDialog):
"""

View file

@ -1,8 +1,7 @@
import os
from Qt import QtCore, QtWidgets, QtGui
from openpype.lib import PypeLogger
from . import lib
from openpype.lib import Logger
from openpype.tools.utils.constants import (
LOCAL_PROVIDER_ROLE,
@ -16,7 +15,7 @@ from openpype.tools.utils.constants import (
EDIT_ICON_ROLE
)
log = PypeLogger().get_logger("SyncServer")
log = Logger.get_logger("SyncServer")
class PriorityDelegate(QtWidgets.QStyledItemDelegate):

View file

@ -2,11 +2,6 @@ import attr
import abc
import six
from openpype.lib import PypeLogger
log = PypeLogger().get_logger("SyncServer")
STATUS = {
0: 'In Progress',
1: 'Queued',

View file

@ -9,8 +9,7 @@ import qtawesome
from openpype.tools.utils.delegates import pretty_timestamp
from openpype.lib import PypeLogger
from openpype.api import get_local_site_id
from openpype.lib import Logger, get_local_site_id
from openpype.client import get_representation_by_id
from . import lib
@ -33,7 +32,7 @@ from openpype.tools.utils.constants import (
)
log = PypeLogger().get_logger("SyncServer")
log = Logger.get_logger("SyncServer")
class _SyncRepresentationModel(QtCore.QAbstractTableModel):

View file

@ -9,8 +9,7 @@ import qtawesome
from openpype.tools.settings import style
from openpype.api import get_local_site_id
from openpype.lib import PypeLogger
from openpype.lib import Logger, get_local_site_id
from openpype.tools.utils.delegates import pretty_timestamp
@ -36,7 +35,7 @@ from openpype.tools.utils.constants import (
TRIES_ROLE
)
log = PypeLogger().get_logger("SyncServer")
log = Logger.get_logger("SyncServer")
class SyncProjectListWidget(QtWidgets.QWidget):

View file

@ -2,7 +2,7 @@ import time
from Qt import QtCore
from pynput import mouse, keyboard
from openpype.lib import PypeLogger
from openpype.lib import Logger
class IdleItem:
@ -31,7 +31,7 @@ class IdleManager(QtCore.QThread):
def __init__(self):
super(IdleManager, self).__init__()
self.log = PypeLogger.get_logger(self.__class__.__name__)
self.log = Logger.get_logger(self.__class__.__name__)
self.signal_reset_timer.connect(self._reset_time)
self.idle_item = IdleItem()

View file

@ -4,16 +4,16 @@ import asyncio
from aiohttp import web
from openpype.lib import PypeLogger
from openpype.lib import Logger
from .cors_middleware import cors_middleware
log = PypeLogger.get_logger("WebServer")
class WebServerManager:
"""Manger that care about web server thread."""
def __init__(self, port=None, host=None):
self._log = None
self.port = port or 8079
self.host = host or "localhost"
@ -33,6 +33,12 @@ class WebServerManager:
self.webserver_thread = WebServerThread(self)
@property
def log(self):
if self._log is None:
self._log = Logger.get_logger(self.__class__.__name__)
return self._log
@property
def url(self):
return "http://{}:{}".format(self.host, self.port)
@ -51,12 +57,12 @@ class WebServerManager:
if not self.is_running:
return
try:
log.debug("Stopping Web server")
self.log.debug("Stopping Web server")
self.webserver_thread.is_running = False
self.webserver_thread.stop()
except Exception:
log.warning(
self.log.warning(
"Error has happened during Killing Web server",
exc_info=True
)
@ -74,7 +80,10 @@ class WebServerManager:
class WebServerThread(threading.Thread):
""" Listener for requests in thread."""
def __init__(self, manager):
self._log = None
super(WebServerThread, self).__init__()
self.is_running = False
@ -84,6 +93,12 @@ class WebServerThread(threading.Thread):
self.site = None
self.tasks = []
@property
def log(self):
if self._log is None:
self._log = Logger.get_logger(self.__class__.__name__)
return self._log
@property
def port(self):
return self.manager.port
@ -96,13 +111,13 @@ class WebServerThread(threading.Thread):
self.is_running = True
try:
log.info("Starting WebServer server")
self.log.info("Starting WebServer server")
self.loop = asyncio.new_event_loop() # create new loop for thread
asyncio.set_event_loop(self.loop)
self.loop.run_until_complete(self.start_server())
log.debug(
self.log.debug(
"Running Web server on URL: \"localhost:{}\"".format(self.port)
)
@ -110,7 +125,7 @@ class WebServerThread(threading.Thread):
self.loop.run_forever()
except Exception:
log.warning(
self.log.warning(
"Web Server service has failed", exc_info=True
)
finally:
@ -118,7 +133,7 @@ class WebServerThread(threading.Thread):
self.is_running = False
self.manager.thread_stopped()
log.info("Web server stopped")
self.log.info("Web server stopped")
async def start_server(self):
""" Starts runner and TCPsite """
@ -138,17 +153,17 @@ class WebServerThread(threading.Thread):
while self.is_running:
while self.tasks:
task = self.tasks.pop(0)
log.debug("waiting for task {}".format(task))
self.log.debug("waiting for task {}".format(task))
await task
log.debug("returned value {}".format(task.result))
self.log.debug("returned value {}".format(task.result))
await asyncio.sleep(0.5)
log.debug("Starting shutdown")
self.log.debug("Starting shutdown")
await self.site.stop()
log.debug("Site stopped")
self.log.debug("Site stopped")
await self.runner.cleanup()
log.debug("Runner stopped")
self.log.debug("Runner stopped")
tasks = [
task
for task in asyncio.all_tasks()
@ -156,7 +171,7 @@ class WebServerThread(threading.Thread):
]
list(map(lambda task: task.cancel(), tasks)) # cancel all the tasks
results = await asyncio.gather(*tasks, return_exceptions=True)
log.debug(f'Finished awaiting cancelled tasks, results: {results}...')
self.log.debug(f'Finished awaiting cancelled tasks, results: {results}...')
await self.loop.shutdown_asyncgens()
# to really make sure everything else has time to stop
await asyncio.sleep(0.07)

View file

@ -14,9 +14,9 @@ from openpype.lib.path_templates import (
TemplatesDict,
FormatObject,
)
from openpype.lib.log import PypeLogger
from openpype.lib.log import Logger
log = PypeLogger.get_logger(__name__)
log = Logger.get_logger(__name__)
class ProjectNotSet(Exception):

View file

@ -5,7 +5,6 @@ import sys
import json
import time
from openpype.lib import PypeLogger
from openpype.api import get_app_environments_for_context
from openpype.lib.plugin_tools import get_batch_asset_task_info
from openpype.lib.remote_publish import (
@ -27,10 +26,11 @@ class PypeCommands:
"""
@staticmethod
def launch_tray():
PypeLogger.set_process_name("Tray")
from openpype.lib import Logger
from openpype.tools import tray
Logger.set_process_name("Tray")
tray.main()
@staticmethod
@ -47,10 +47,12 @@ class PypeCommands:
@staticmethod
def add_modules(click_func):
"""Modules/Addons can add their cli commands dynamically."""
from openpype.lib import Logger
from openpype.modules import ModulesManager
manager = ModulesManager()
log = PypeLogger.get_logger("AddModulesCLI")
log = Logger.get_logger("CLI-AddModules")
for module in manager.modules:
try:
module.cli(click_func)
@ -96,10 +98,10 @@ class PypeCommands:
Raises:
RuntimeError: When there is no path to process.
"""
from openpype.lib import Logger
from openpype.modules import ModulesManager
from openpype.pipeline import install_openpype_plugins
from openpype.api import Logger
from openpype.tools.utils.host_tools import show_publish
from openpype.tools.utils.lib import qt_app_context
@ -107,7 +109,7 @@ class PypeCommands:
import pyblish.api
import pyblish.util
log = Logger.get_logger()
log = Logger.get_logger("CLI-publish")
install_openpype_plugins()
@ -195,11 +197,12 @@ class PypeCommands:
targets (list): Pyblish targets
(to choose validator for example)
"""
import pyblish.api
from openpype.api import Logger
from openpype.lib import ApplicationManager
log = Logger.get_logger()
from openpype.lib import Logger
log = Logger.get_logger("CLI-remotepublishfromapp")
log.info("remotepublishphotoshop command")
@ -311,10 +314,11 @@ class PypeCommands:
import pyblish.api
import pyblish.util
from openpype.lib import Logger
from openpype.pipeline import install_host
from openpype.hosts.webpublisher import api as webpublisher
log = PypeLogger.get_logger()
log = Logger.get_logger("remotepublish")
log.info("remotepublish command")

View file

@ -15,7 +15,7 @@ from .exceptions import (
EntitySchemaError
)
from openpype.lib import PypeLogger
from openpype.lib import Logger
@six.add_metaclass(ABCMeta)
@ -478,7 +478,7 @@ class BaseItemEntity(BaseEntity):
def log(self):
"""Auto created logger for debugging or warnings."""
if self._log is None:
self._log = PypeLogger.get_logger(self.__class__.__name__)
self._log = Logger.get_logger(self.__class__.__name__)
return self._log
@abstractproperty