summaryrefslogtreecommitdiff
path: root/azurelinuxagent/common/logger.py
diff options
context:
space:
mode:
authorƁukasz 'sil2100' Zemczak <lukasz.zemczak@ubuntu.com>2018-02-05 17:25:14 +0100
committerusd-importer <ubuntu-server@lists.ubuntu.com>2018-02-05 19:15:55 +0000
commitbdfe3a4fa9bd487ec5f40e829742e127476d2c8a (patch)
tree947ecb04d5e2737883803034ab9885ddab70b816 /azurelinuxagent/common/logger.py
parent6aaeb3237653102b5a376986f0ea73327a7a4379 (diff)
downloadvyos-walinuxagent-bdfe3a4fa9bd487ec5f40e829742e127476d2c8a.tar.gz
vyos-walinuxagent-bdfe3a4fa9bd487ec5f40e829742e127476d2c8a.zip
Import patches-unapplied version 2.2.21-0ubuntu1 to ubuntu/bionic-proposed
Imported using git-ubuntu import. Changelog parent: 6aaeb3237653102b5a376986f0ea73327a7a4379 New changelog entries: * New upstream release (LP: #1746628). * debian/patches/disable_import_test.patch: refreshed patch.
Diffstat (limited to 'azurelinuxagent/common/logger.py')
-rw-r--r--azurelinuxagent/common/logger.py34
1 files changed, 33 insertions, 1 deletions
diff --git a/azurelinuxagent/common/logger.py b/azurelinuxagent/common/logger.py
index bfdc73a..0a90718 100644
--- a/azurelinuxagent/common/logger.py
+++ b/azurelinuxagent/common/logger.py
@@ -17,8 +17,8 @@
"""
Log utils
"""
-import os
import sys
+
from azurelinuxagent.common.future import ustr
from datetime import datetime, timedelta
@@ -28,6 +28,7 @@ EVERY_HOUR = timedelta(hours=1)
EVERY_HALF_HOUR = timedelta(minutes=30)
EVERY_FIFTEEN_MINUTES = timedelta(minutes=15)
+
class Logger(object):
"""
Logger class
@@ -92,6 +93,7 @@ class Logger(object):
appender = _create_logger_appender(appender_type, level, path)
self.appenders.append(appender)
+
class ConsoleAppender(object):
def __init__(self, level, path):
self.level = level
@@ -105,6 +107,7 @@ class ConsoleAppender(object):
except IOError:
pass
+
class FileAppender(object):
def __init__(self, level, path):
self.level = level
@@ -118,6 +121,7 @@ class FileAppender(object):
except IOError:
pass
+
class StdoutAppender(object):
def __init__(self, level):
self.level = level
@@ -129,9 +133,24 @@ class StdoutAppender(object):
except IOError:
pass
+
+class TelemetryAppender(object):
+ def __init__(self, level, event_func):
+ self.level = level
+ self.event_func = event_func
+
+ def write(self, level, msg):
+ if self.level <= level:
+ try:
+ self.event_func(level, msg)
+ except IOError:
+ pass
+
+
#Initialize logger instance
DEFAULT_LOGGER = Logger()
+
class LogLevel(object):
VERBOSE = 0
INFO = 1
@@ -144,35 +163,46 @@ class LogLevel(object):
"ERROR"
]
+
class AppenderType(object):
FILE = 0
CONSOLE = 1
STDOUT = 2
+ TELEMETRY = 3
+
def add_logger_appender(appender_type, level=LogLevel.INFO, path=None):
DEFAULT_LOGGER.add_appender(appender_type, level, path)
+
def reset_periodic():
DEFAULT_LOGGER.reset_periodic()
+
def periodic(delta, msg_format, *args):
DEFAULT_LOGGER.periodic(delta, msg_format, *args)
+
def verbose(msg_format, *args):
DEFAULT_LOGGER.verbose(msg_format, *args)
+
def info(msg_format, *args):
DEFAULT_LOGGER.info(msg_format, *args)
+
def warn(msg_format, *args):
DEFAULT_LOGGER.warn(msg_format, *args)
+
def error(msg_format, *args):
DEFAULT_LOGGER.error(msg_format, *args)
+
def log(level, msg_format, *args):
DEFAULT_LOGGER.log(level, msg_format, args)
+
def _create_logger_appender(appender_type, level=LogLevel.INFO, path=None):
if appender_type == AppenderType.CONSOLE:
return ConsoleAppender(level, path)
@@ -180,6 +210,8 @@ def _create_logger_appender(appender_type, level=LogLevel.INFO, path=None):
return FileAppender(level, path)
elif appender_type == AppenderType.STDOUT:
return StdoutAppender(level)
+ elif appender_type == AppenderType.TELEMETRY:
+ return TelemetryAppender(level, path)
else:
raise ValueError("Unknown appender type")