Coverage for /pythoncovmergedfiles/medio/medio/usr/local/lib/python3.11/site-packages/google/cloud/logging_v2/handlers/transports/base.py: 58%

Shortcuts on this page

r m x   toggle line displays

j k   next/prev highlighted chunk

0   (zero) top of page

1   (one) first highlighted chunk

12 statements  

1# Copyright 2016 Google LLC 

2# 

3# Licensed under the Apache License, Version 2.0 (the "License"); 

4# you may not use this file except in compliance with the License. 

5# You may obtain a copy of the License at 

6# 

7# http://www.apache.org/licenses/LICENSE-2.0 

8# 

9# Unless required by applicable law or agreed to in writing, software 

10# distributed under the License is distributed on an "AS IS" BASIS, 

11# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 

12# See the License for the specific language governing permissions and 

13# limitations under the License. 

14 

15"""Module containing base class for logging transport.""" 

16 

17from google.cloud.logging_v2.logger import _GLOBAL_RESOURCE 

18 

19 

20class Transport(object): 

21 """Base class for Google Cloud Logging handler transports. 

22 

23 Subclasses of :class:`Transport` must have constructors that accept a 

24 client and name object, and must override :meth:`send`. 

25 """ 

26 

27 def __init__(self, client, name, resource=_GLOBAL_RESOURCE, **kwargs): 

28 """ 

29 Args: 

30 client (~logging_v2.client.Client): 

31 The Logging client. 

32 name (str): The name of the lgoger. 

33 resource (Optional[Resource|dict]): The default monitored resource to associate 

34 with logs when not specified 

35 """ 

36 super().__init__() 

37 

38 def send(self, record, message, **kwargs): 

39 """Transport send to be implemented by subclasses. 

40 

41 Args: 

42 record (logging.LogRecord): Python log record that the handler was called with. 

43 message (str or dict): The message from the ``LogRecord`` after being 

44 formatted by the associated log formatters. 

45 kwargs: Additional optional arguments for the logger 

46 """ 

47 raise NotImplementedError 

48 

49 def flush(self): 

50 """Submit any pending log records. 

51 

52 For blocking/sync transports, this is a no-op. 

53 """ 

54 pass 

55 

56 def close(self): 

57 """Closes the transport and cleans up resources used by it. 

58 

59 This call should be followed up by disowning the transport. 

60 """ 

61 pass