Skip to content

Commit f7fe013

Browse files
author
Ethan Ho
committed
LogglyHandler takes only one URL argument on init
1 parent 6972e9e commit f7fe013

File tree

3 files changed

+24
-38
lines changed

3 files changed

+24
-38
lines changed

src/reactors/logtypes/loggly_futures_session.py

Lines changed: 2 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -29,25 +29,10 @@ def response_hook_noop(resp, *args, **kwargs):
2929
class LogglyHandler(logging.Handler):
3030
"""Send logs to Loggly HTTPS handler"""
3131

32-
def __init__(self, config):
33-
if not isinstance(config, dict):
34-
config = {}
32+
def __init__(self, url):
3533
super(LogglyHandler, self).__init__()
36-
# assert not hasattr(self, 'config')
37-
self.config = config
34+
self.url = url
3835

39-
@property
40-
def url(self):
41-
"""Form Loggly URL. User can supply either a loggly.customer_token,
42-
a loggly.url, or both if they format the loggly.url correctly for
43-
parsing below.
44-
"""
45-
url = self.config.get('url', '')
46-
customer_token = self.config.get('customer_token', '')
47-
if not url:
48-
url = 'https://logs-01.loggly.com/inputs/{customer_token}/tag/python'
49-
return url.replace("{customer_token}", customer_token)
50-
5136
def get_full_message(self, record):
5237
if record.exc_info:
5338
return '\n'.join(traceback.format_exception(*record.exc_info))

src/reactors/logtypes/main.py

Lines changed: 20 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -36,6 +36,8 @@
3636
# Working directory - home of logs
3737
PWD = os.getcwd()
3838

39+
DEFAULT_LOGGLY_URL = 'https://logs-01.loggly.com/inputs/{customer_token}/tag/python'
40+
3941

4042
def get_log_file_strategy():
4143
return LOG_FILE_STRATEGY_DEFAULT
@@ -206,27 +208,25 @@ def get_loggly_logger(name,
206208
'''Returns a logger object that can post to Loggly'''
207209

208210
log_level = settings.get('logs', {}).get('level', LOG_LEVEL)
209-
logger = _get_logger(name=name, subname=subname,
210-
log_level=log_level)
211-
212-
# Create the STDERR logger
213-
text_formatter = _get_formatter(name, subname, redactions, timestamp)
214-
stderrHandler = logging.StreamHandler()
215-
stderrHandler.setFormatter(text_formatter)
216-
logger.addHandler(stderrHandler)
217-
218-
# Create NETWORK logger if log_token present
219-
log_token = settings.get('loggly', {}).get('customer_token', None)
220-
config = settings.get('loggly', None)
221-
if log_token is not None and config is not None:
222-
json_formatter = _get_loggly_formatter(name, subname,
223-
redactions,
224-
fields,
225-
timestamp)
211+
logger = _get_logger(name=name, subname=subname, log_level=log_level)
226212

227-
networkHandler = LogglyHandler(config)
228-
networkHandler.setFormatter(json_formatter)
229-
logger.addHandler(networkHandler)
213+
# Construct the Loggly URL
214+
config = settings.get('loggly', dict())
215+
url = config.get('url', '')
216+
customer_token = config.get('customer_token')
217+
if customer_token is None:
218+
customer_token = str()
219+
if not url:
220+
url = DEFAULT_LOGGLY_URL
221+
url = url.replace('{customer_token}', customer_token)
222+
223+
# Create LogglyHandler if loggly config is present
224+
if config and customer_token:
225+
json_formatter = _get_loggly_formatter(name, subname, redactions, fields,
226+
timestamp)
227+
loggly_handler = LogglyHandler(url=url)
228+
loggly_handler.setFormatter(json_formatter)
229+
logger.addHandler(loggly_handler)
230230

231231
# TODO: Forward to loggly if token is set
232232
return logger

tests/test_loggly.py

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -25,7 +25,8 @@ def test_loggly_handler(R_tp_opt, loggly_token, monkeypatch):
2525
assert lh._resp.result().status_code == 200
2626

2727
# now bork the token and check that the response fails to POST
28-
lh.config['customer_token'] = 'bogus_token'
28+
bogus_token = "bogus_token"
29+
lh.url = 'https://logs-01.loggly.com/inputs/{}/tag/python'.format(bogus_token)
2930
r.loggers.loggly.info('this message from LogglyHandler wont go through')
3031
assert lh._resp.result().status_code != 200
3132

0 commit comments

Comments
 (0)