예제 #1
0
    def test_logs_to_datadog(self, mock_dd):
        handler = DatadogLogHandler()

        record = logging.makeLogRecord({"msg": "Some message"})

        handler.emit(record)

        mock_dd.api.Event.create.assert_called_with(title="Some message",
                                                    text="Some message")
예제 #2
0
    def test_includes_mentions_from_constructor(self, mock_dd):
        handler = DatadogLogHandler(mentions=["@mention-1", "@mention-2"])

        record = logging.makeLogRecord({"msg": "Some message"})

        handler.emit(record)

        mock_dd.api.Event.create.assert_called_with(
            title="Some message", text="Some message\n\n@mention-1 @mention-2")
예제 #3
0
    def test_includes_tags_from_constructor(self, mock_dd):
        handler = DatadogLogHandler(tags=["some:tag"])

        record = logging.makeLogRecord({"msg": "Some message"})

        handler.emit(record)

        mock_dd.api.Event.create.assert_called_with(title="Some message",
                                                    text="Some message",
                                                    tags=["some:tag"])
예제 #4
0
    def test_includes_mentions_from_constructor(self, mock_dd):
        handler = DatadogLogHandler(mentions=["@mention-1", "@mention-2"])

        record = logging.makeLogRecord({
            "msg": "Some message"
        })

        handler.emit(record)

        mock_dd.api.Event.create.assert_called_with(
            title="Some message", text="Some message\n\n@mention-1 @mention-2")
예제 #5
0
    def test_logs_to_datadog(self, mock_dd):
        handler = DatadogLogHandler()

        record = logging.makeLogRecord({
            "msg": "Some message"
        })

        handler.emit(record)

        mock_dd.api.Event.create.assert_called_with(
            title="Some message", text="Some message")
예제 #6
0
    def test_includes_tags_from_constructor(self, mock_dd):
        handler = DatadogLogHandler(tags=["some:tag"])

        record = logging.makeLogRecord({
            "msg": "Some message"
        })

        handler.emit(record)

        mock_dd.api.Event.create.assert_called_with(
            title="Some message", text="Some message",
            tags=["some:tag"])
예제 #7
0
    def test_includes_maps_debug_to_info(self, mock_dd):
        handler = DatadogLogHandler()

        record = logging.makeLogRecord({
            "msg": "Some message",
            "levelno": logging.DEBUG
        })

        handler.emit(record)

        mock_dd.api.Event.create.assert_called_with(title="Some message",
                                                    text="Some message",
                                                    alert_type="info")
예제 #8
0
    def test_includes_maps_critical_to_error(self, mock_dd):
        handler = DatadogLogHandler()

        record = logging.makeLogRecord({
            "msg": "Some message",
            "levelno": logging.CRITICAL
        })

        handler.emit(record)

        mock_dd.api.Event.create.assert_called_with(title="Some message",
                                                    text="Some message",
                                                    alert_type="error")
예제 #9
0
    def test_includes_maps_debug_to_info(self, mock_dd):
        handler = DatadogLogHandler()

        record = logging.makeLogRecord({
            "msg": "Some message",
            "levelno": logging.DEBUG
        })

        handler.emit(record)

        mock_dd.api.Event.create.assert_called_with(
            title="Some message", text="Some message",
            alert_type="info")
예제 #10
0
    def test_includes_maps_critical_to_error(self, mock_dd):
        handler = DatadogLogHandler()

        record = logging.makeLogRecord({
            "msg": "Some message",
            "levelno": logging.CRITICAL
        })

        handler.emit(record)

        mock_dd.api.Event.create.assert_called_with(
            title="Some message", text="Some message",
            alert_type="error")
예제 #11
0
    def test_logs_formatted_message_as_text(self, mock_dd):
        handler = DatadogLogHandler()

        exc_info = make_exc_info()

        record = logging.makeLogRecord({
            "msg": "Some message",
            "exc_info": exc_info
        })

        expected_text = "\n".join(
            ["Some message", "".join(traceback.format_exception(*exc_info))]).rstrip("\n")

        handler.emit(record)

        mock_dd.api.Event.create.assert_called_with(
            title="Some message", text=expected_text)
예제 #12
0
    def test_logs_formatted_message_as_text(self, mock_dd):
        handler = DatadogLogHandler()

        exc_info = make_exc_info()

        record = logging.makeLogRecord({
            "msg": "Some message",
            "exc_info": exc_info
        })

        expected_text = "\n".join(
            ["Some message",
             "".join(traceback.format_exception(*exc_info))]).rstrip("\n")

        handler.emit(record)

        mock_dd.api.Event.create.assert_called_with(title="Some message",
                                                    text=expected_text)
예제 #13
0
def log_error_events(name=None, tags=None, mentions=None):
    handler = DatadogLogHandler(tags=tags,
                                mentions=mentions,
                                level=logging.ERROR)
    logging.getLogger(name).addHandler(handler)