Source code for airflow.providers.opensearch.log.os_json_formatter
# Licensed to the Apache Software Foundation (ASF) under one# or more contributor license agreements. See the NOTICE file# distributed with this work for additional information# regarding copyright ownership. The ASF licenses this file# to you under the Apache License, Version 2.0 (the# "License"); you may not use this file except in compliance# with the License. You may obtain a copy of the License at## http://www.apache.org/licenses/LICENSE-2.0## Unless required by applicable law or agreed to in writing,# software distributed under the License is distributed on an# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY# KIND, either express or implied. See the License for the# specific language governing permissions and limitations# under the License.from__future__importannotationsfromdatetimeimportdatetimeimportpendulumfromairflow.utils.log.json_formatterimportJSONFormatter
[docs]classOpensearchJSONFormatter(JSONFormatter):"""Convert a log record to JSON with ISO 8601 date and time format."""
[docs]defformatTime(self,record,datefmt=None):"""Return the creation time of the LogRecord in ISO 8601 date/time format in the local time zone."""# TODO: Use airflow.utils.timezone.from_timestamp(record.created, tz="local")# as soon as min Airflow 2.9.0dt=datetime.fromtimestamp(record.created,tz=pendulum.local_timezone())s=dt.strftime(datefmtorself.default_time_format)ifself.default_msec_format:s=self.default_msec_format%(s,record.msecs)ifself.default_tz_format:s+=dt.strftime(self.default_tz_format)returns