Skip to content

Commit

Permalink
fix stuff
Browse files Browse the repository at this point in the history
  • Loading branch information
liyanhui1228 committed May 15, 2017
1 parent 4d1924f commit c4704d6
Show file tree
Hide file tree
Showing 7 changed files with 36 additions and 60 deletions.
30 changes: 10 additions & 20 deletions logging/google/cloud/logging/handlers/app_engine.py
Original file line number Diff line number Diff line change
Expand Up @@ -14,35 +14,26 @@

"""Logging handler for App Engine Flexible
Logs to the well-known file that the fluentd sidecar container on App Engine
Flexible is configured to read from and send to Stackdriver Logging.
See the fluentd configuration here:
https://github.com/GoogleCloudPlatform/appengine-sidecars-docker/tree/master/fluentd_logger
Send logs to Stackdriver Logging API.
"""

# This file is largely copied from:
# https://github.com/GoogleCloudPlatform/python-compat-runtime/blob/master
# /appengine-vmruntime/vmruntime/cloud_logging.py

import logging.handlers
import os

from google.cloud.logging.handlers.handlers import CloudLoggingHandler
from google.cloud.logging.handlers.handlers import EXCLUDED_LOGGER_DEFAULTS
from google.cloud.logging.handlers.transports import BackgroundThreadTransport
from google.cloud.logging.resource import Resource

DEFAULT_LOGGER_NAME = 'python'
GAE_PROJECT_ENV = 'GCLOUD_PROJECT'

EXCLUDED_LOGGER_DEFAULTS = ('google.cloud', 'oauth2client')
DEFAULT_LOGGER_NAME = 'projects/{}/logs/app'.format(os.environ.get(GAE_PROJECT_ENV))

GAE_RESOURCE = Resource(
type='gae_app',
labels={
'project_id': os.getenv('GCLOUD_PROJECT'),
'module_id': os.getenv('GAE_SERVICE'),
'version_id': os.getenv('GAE_VERSION'),
'project_id': os.environ.get(GAE_PROJECT_ENV),
'module_id': os.environ.get('GAE_SERVICE'),
'version_id': os.environ.get('GAE_VERSION'),
},
)

Expand Down Expand Up @@ -77,7 +68,6 @@ class AppEngineHandler(CloudLoggingHandler):
"""

def __init__(self, client,
name=DEFAULT_LOGGER_NAME,
transport=BackgroundThreadTransport,
resource=GAE_RESOURCE):
super(AppEngineHandler, self).__init__(client, name, transport, resource)
name=EXCLUDED_LOGGER_DEFAULTS,
transport=BackgroundThreadTransport):
super(AppEngineHandler, self).__init__(client, name, transport, resource=GAE_RESOURCE)
Original file line number Diff line number Diff line change
Expand Up @@ -28,7 +28,6 @@
from six.moves import queue

from google.cloud.logging.handlers.transports.base import Transport
from google.cloud.logging.logger import _GLOBAL_RESOURCE

_DEFAULT_GRACE_PERIOD = 5.0 # Seconds
_DEFAULT_MAX_BATCH_SIZE = 10
Expand Down Expand Up @@ -258,7 +257,7 @@ def __init__(self, client, name, grace_period=_DEFAULT_GRACE_PERIOD,
self.worker = _Worker(logger)
self.worker.start()

def send(self, record, message, resource=_GLOBAL_RESOURCE):
def send(self, record, message, resource=None):
"""Overrides Transport.send().
:type record: :class:`logging.LogRecord`
Expand Down
2 changes: 1 addition & 1 deletion logging/google/cloud/logging/handlers/transports/base.py
Original file line number Diff line number Diff line change
Expand Up @@ -22,7 +22,7 @@ class Transport(object):
client and name object, and must override :meth:`send`.
"""

def send(self, record, message, resource):
def send(self, record, message, resource=None):
"""Transport send to be implemented by subclasses.
:type record: :class:`logging.LogRecord`
Expand Down
5 changes: 1 addition & 4 deletions logging/google/cloud/logging/handlers/transports/sync.py
Original file line number Diff line number Diff line change
Expand Up @@ -21,9 +21,6 @@
from google.cloud.logging.resource import Resource


_GLOBAL_RESOURCE = Resource(type='global', labels={})


class SyncTransport(Transport):
"""Basic sychronous transport.
Expand All @@ -33,7 +30,7 @@ class SyncTransport(Transport):
def __init__(self, client, name):
self.logger = client.logger(name)

def send(self, record, message, resource=_GLOBAL_RESOURCE):
def send(self, record, message, resource=None):
"""Overrides transport.send().
:type record: :class:`logging.LogRecord`
Expand Down
30 changes: 16 additions & 14 deletions logging/tests/unit/handlers/test_app_engine.py
Original file line number Diff line number Diff line change
Expand Up @@ -15,11 +15,21 @@
import logging
import os
import unittest
from google.cloud.logging.resource import Resource


class TestAppEngineHandlerHandler(unittest.TestCase):
PROJECT = 'PROJECT'
from google.cloud.logging.resource import Resource

GAE_PROJECT_ENV = 'PROJECT'

GAE_RESOURCE = Resource(
type='gae_app',
labels={
'project_id': os.environ.get(GAE_PROJECT_ENV),
'module_id': os.environ.get('GAE_SERVICE'),
'version_id': os.environ.get('GAE_VERSION'),
},
)

def _get_target_class(self):
from google.cloud.logging.handlers.app_engine import AppEngineHandler
Expand All @@ -30,29 +40,21 @@ def _make_one(self, *args, **kw):
return self._get_target_class()(*args, **kw)

def test_ctor(self):
client = _Client(self.PROJECT)
client = _Client(self.GAE_PROJECT_ENV)
handler = self._make_one(client, transport=_Transport)
self.assertEqual(handler.client, client)
self.assertEqual(handler.resource, self.GAE_RESOURCE)

def test_emit(self):
RESOURCE = Resource(
type='gae_app',
labels={
'project_id': os.getenv('GCLOUD_PROJECT'),
'module_id': os.getenv('GAE_SERVICE'),
'version_id': os.getenv('GAE_VERSION'),
},
)

client = _Client(self.PROJECT)
client = _Client(self.GAE_PROJECT_ENV)
handler = self._make_one(client, transport=_Transport)
logname = 'loggername'
message = 'hello world'
record = logging.LogRecord(logname, logging, None, None, message,
None, None)
handler.emit(record)

self.assertEqual(handler.transport.send_called_with, (record, message, RESOURCE))
self.assertEqual(handler.transport.send_called_with, (record, message, self.GAE_RESOURCE))


class _Client(object):
Expand Down
12 changes: 3 additions & 9 deletions logging/tests/unit/handlers/transports/test_background_thread.py
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,6 @@

import logging
import unittest
from google.cloud.logging.resource import Resource

import mock
from six.moves import queue
Expand Down Expand Up @@ -48,12 +47,7 @@ def test_constructor(self):
self.assertEqual(logger.name, name)

def test_send(self):
RESOURCE = Resource(
type='gae_app',
labels={
'module_id': 'default',
'version_id': 'test',
})
from google.cloud.logging.logger import _GLOBAL_RESOURCE

client = _Client(self.PROJECT)
name = 'python_logger'
Expand All @@ -67,9 +61,9 @@ def test_send(self):
python_logger_name, logging.INFO,
None, None, message, None, None)

transport.send(record, message, RESOURCE)
transport.send(record, message, _GLOBAL_RESOURCE)

transport.worker.enqueue.assert_called_once_with(record, message, RESOURCE)
transport.worker.enqueue.assert_called_once_with(record, message, _GLOBAL_RESOURCE)

def test_flush(self):
client = _Client(self.PROJECT)
Expand Down
14 changes: 4 additions & 10 deletions logging/tests/unit/handlers/transports/test_sync.py
Original file line number Diff line number Diff line change
Expand Up @@ -14,8 +14,6 @@

import logging
import unittest
from google.cloud.logging.resource import Resource
from google.cloud.logging.logger import _GLOBAL_RESOURCE


class TestSyncHandler(unittest.TestCase):
Expand All @@ -38,12 +36,7 @@ def test_ctor(self):
self.assertEqual(transport.logger.name, 'python_logger')

def test_send(self):
RESOURCE = Resource(
type='gae_app',
labels={
'module_id': 'default',
'version_id': 'test',
})
from google.cloud.logging.logger import _GLOBAL_RESOURCE

client = _Client(self.PROJECT)

Expand All @@ -54,17 +47,18 @@ def test_send(self):
record = logging.LogRecord(python_logger_name, logging.INFO,
None, None, message, None, None)

transport.send(record, message, RESOURCE)
transport.send(record, message, _GLOBAL_RESOURCE)
EXPECTED_STRUCT = {
'message': message,
'python_logger': python_logger_name,
}
EXPECTED_SENT = (EXPECTED_STRUCT, 'INFO', RESOURCE)
EXPECTED_SENT = (EXPECTED_STRUCT, 'INFO', _GLOBAL_RESOURCE)
self.assertEqual(
transport.logger.log_struct_called_with, EXPECTED_SENT)


class _Logger(object):
from google.cloud.logging.logger import _GLOBAL_RESOURCE

def __init__(self, name):
self.name = name
Expand Down

0 comments on commit c4704d6

Please sign in to comment.