Program Listing for File log_record.h
↰ Return to documentation for file (/tmp/B.puc0r6hi/BUILD/opentelemetry-cpp-1.27.0-build/opentelemetry-cpp-1.27.0/api/include/opentelemetry/logs/log_record.h)
// Copyright The OpenTelemetry Authors
// SPDX-License-Identifier: Apache-2.0
#pragma once
#include "opentelemetry/common/attribute_value.h"
#include "opentelemetry/common/timestamp.h"
#include "opentelemetry/version.h"
OPENTELEMETRY_BEGIN_NAMESPACE
namespace trace
{
class SpanId;
class TraceId;
class TraceFlags;
} // namespace trace
namespace logs
{
enum class Severity : uint8_t;
class LogRecord
{
public:
LogRecord() = default;
LogRecord(const LogRecord &) = default;
LogRecord(LogRecord &&) noexcept = default;
LogRecord &operator=(const LogRecord &) = default;
LogRecord &operator=(LogRecord &&) noexcept = default;
virtual ~LogRecord() = default;
virtual void SetTimestamp(common::SystemTimestamp timestamp) noexcept = 0;
virtual void SetObservedTimestamp(common::SystemTimestamp timestamp) noexcept = 0;
virtual void SetSeverity(logs::Severity severity) noexcept = 0;
virtual void SetBody(const common::AttributeValue &message) noexcept = 0;
virtual void SetAttribute(nostd::string_view key,
const common::AttributeValue &value) noexcept = 0;
// TODO: mark this as pure virtual once all exporters have been updated
virtual void SetEventId(int64_t id, nostd::string_view name = {}) noexcept = 0;
virtual void SetTraceId(const trace::TraceId &trace_id) noexcept = 0;
virtual void SetSpanId(const trace::SpanId &span_id) noexcept = 0;
virtual void SetTraceFlags(const trace::TraceFlags &trace_flags) noexcept = 0;
};
} // namespace logs
OPENTELEMETRY_END_NAMESPACE