[{"data":1,"prerenderedAt":1954},["ShallowReactive",2],{"\u002Fget\u002Fopentelemetry-cpp\u002Flogs-navigation":3,"\u002Fget\u002Fopentelemetry-cpp\u002Flogs":403,"otel-prereq-cpp":1927},[4,8,12,16,20,24,28,68,102,134,162,196,223,261,291,321,348,375],{"title":5,"path":6,"stem":7},"Get started","\u002Fget","get\u002F01.index",{"title":9,"path":10,"stem":11},"Logs monitoring","\u002Fget\u002Flogs","get\u002F02.logs",{"title":13,"path":14,"stem":15},"Exceptions and errors","\u002Fget\u002Fexceptions","get\u002F03.exceptions",{"title":17,"path":18,"stem":19},"Kubernetes","\u002Fget\u002Fkubernetes","get\u002F04.kubernetes",{"title":21,"path":22,"stem":23},"Migrating from Datadog","\u002Fget\u002Fdatadog-migration","get\u002F05.datadog-migration",{"title":25,"path":26,"stem":27},"Migrating from NewRelic","\u002Fget\u002Fnewrelic-migration","get\u002F06.newrelic-migration",{"title":29,"closed":30,"path":31,"stem":32,"children":33,"page":-1},"Hosted",true,"\u002Fget\u002Fhosted","get\u002Fhosted\u002Findex",[34,36,40,44,48,52,56,60,64],{"title":35,"path":31,"stem":32},"Overview",{"title":37,"path":38,"stem":39},"Why Uptrace?","\u002Fget\u002Fhosted\u002Fopen-source-apm","get\u002Fhosted\u002F01.open-source-apm",{"title":41,"path":42,"stem":43},"Install Uptrace","\u002Fget\u002Fhosted\u002Finstall","get\u002Fhosted\u002F02.install",{"title":45,"path":46,"stem":47},"Ansible deployment","\u002Fget\u002Fhosted\u002Fansible","get\u002Fhosted\u002F03.ansible",{"title":49,"path":50,"stem":51},"K8s deployment","\u002Fget\u002Fhosted\u002Fk8s","get\u002Fhosted\u002F04.k8s",{"title":53,"path":54,"stem":55},"Docker deployment","\u002Fget\u002Fhosted\u002Fdocker","get\u002Fhosted\u002F05.docker",{"title":57,"path":58,"stem":59},"Configuration","\u002Fget\u002Fhosted\u002Fconfig","get\u002Fhosted\u002F06.config",{"title":61,"path":62,"stem":63},"Troubleshooting","\u002Fget\u002Fhosted\u002Fdebug","get\u002Fhosted\u002F07.debug",{"title":65,"path":66,"stem":67},"Scaling","\u002Fget\u002Fhosted\u002Fscale","get\u002Fhosted\u002F08.scale",{"title":69,"path":70,"stem":71,"children":72,"closed":30},"C++","\u002Fget\u002Fopentelemetry-cpp","get\u002Fopentelemetry-cpp\u002F01.index",[73,74,78,82,86,90,94,98],{"title":5,"path":70,"stem":71},{"title":75,"path":76,"stem":77},"OTLP exporter","\u002Fget\u002Fopentelemetry-cpp\u002Fotlp","get\u002Fopentelemetry-cpp\u002F02.otlp",{"title":79,"path":80,"stem":81},"Tracing","\u002Fget\u002Fopentelemetry-cpp\u002Ftracing","get\u002Fopentelemetry-cpp\u002F03.tracing",{"title":83,"path":84,"stem":85},"Metrics","\u002Fget\u002Fopentelemetry-cpp\u002Fmetrics","get\u002Fopentelemetry-cpp\u002F04.metrics",{"title":87,"path":88,"stem":89},"Logs","\u002Fget\u002Fopentelemetry-cpp\u002Flogs","get\u002Fopentelemetry-cpp\u002F05.logs",{"title":91,"path":92,"stem":93},"Resource attributes","\u002Fget\u002Fopentelemetry-cpp\u002Fresources","get\u002Fopentelemetry-cpp\u002F06.resources",{"title":95,"path":96,"stem":97},"Context Propagation","\u002Fget\u002Fopentelemetry-cpp\u002Fpropagation","get\u002Fopentelemetry-cpp\u002F07.propagation",{"title":99,"path":100,"stem":101},"Sampling","\u002Fget\u002Fopentelemetry-cpp\u002Fsampling","get\u002Fopentelemetry-cpp\u002F08.sampling",{"title":103,"path":104,"stem":105,"children":106,"closed":30},".NET","\u002Fget\u002Fopentelemetry-dotnet","get\u002Fopentelemetry-dotnet\u002F01.index",[107,108,111,114,117,120,124,127,130],{"title":5,"path":104,"stem":105},{"title":75,"path":109,"stem":110},"\u002Fget\u002Fopentelemetry-dotnet\u002Fotlp","get\u002Fopentelemetry-dotnet\u002F02.otlp",{"title":79,"path":112,"stem":113},"\u002Fget\u002Fopentelemetry-dotnet\u002Ftracing","get\u002Fopentelemetry-dotnet\u002F03.tracing",{"title":83,"path":115,"stem":116},"\u002Fget\u002Fopentelemetry-dotnet\u002Fmetrics","get\u002Fopentelemetry-dotnet\u002F04.metrics",{"title":87,"path":118,"stem":119},"\u002Fget\u002Fopentelemetry-dotnet\u002Flogs","get\u002Fopentelemetry-dotnet\u002F05.logs",{"title":121,"path":122,"stem":123},"Resource detectors","\u002Fget\u002Fopentelemetry-dotnet\u002Fresources","get\u002Fopentelemetry-dotnet\u002F06.resources",{"title":95,"path":125,"stem":126},"\u002Fget\u002Fopentelemetry-dotnet\u002Fpropagation","get\u002Fopentelemetry-dotnet\u002F07.propagation",{"title":99,"path":128,"stem":129},"\u002Fget\u002Fopentelemetry-dotnet\u002Fsampling","get\u002Fopentelemetry-dotnet\u002F08.sampling",{"title":131,"path":132,"stem":133},"Zero-code","\u002Fget\u002Fopentelemetry-dotnet\u002Fzero-code","get\u002Fopentelemetry-dotnet\u002F09.zero-code",{"title":135,"path":136,"stem":137,"children":138,"closed":30},"Erlang\u002FElixir","\u002Fget\u002Fopentelemetry-erlang","get\u002Fopentelemetry-erlang\u002F01.index",[139,140,143,146,149,152,155,159],{"title":5,"path":136,"stem":137},{"title":75,"path":141,"stem":142},"\u002Fget\u002Fopentelemetry-erlang\u002Fotlp","get\u002Fopentelemetry-erlang\u002F02.otlp",{"title":79,"path":144,"stem":145},"\u002Fget\u002Fopentelemetry-erlang\u002Ftracing","get\u002Fopentelemetry-erlang\u002F03.tracing",{"title":83,"path":147,"stem":148},"\u002Fget\u002Fopentelemetry-erlang\u002Fmetrics","get\u002Fopentelemetry-erlang\u002F04.metrics",{"title":87,"path":150,"stem":151},"\u002Fget\u002Fopentelemetry-erlang\u002Flogs","get\u002Fopentelemetry-erlang\u002F05.logs",{"title":121,"path":153,"stem":154},"\u002Fget\u002Fopentelemetry-erlang\u002Fresources","get\u002Fopentelemetry-erlang\u002F06.resources",{"title":156,"path":157,"stem":158},"Propagation","\u002Fget\u002Fopentelemetry-erlang\u002Fpropagation","get\u002Fopentelemetry-erlang\u002F07.propagation",{"title":99,"path":160,"stem":161},"\u002Fget\u002Fopentelemetry-erlang\u002Fsampling","get\u002Fopentelemetry-erlang\u002F08.sampling",{"title":163,"path":164,"stem":165,"children":166,"closed":30},"Golang","\u002Fget\u002Fopentelemetry-go","get\u002Fopentelemetry-go\u002F01.index",[167,168,171,174,177,180,183,186,189,193],{"title":5,"path":164,"stem":165},{"title":75,"path":169,"stem":170},"\u002Fget\u002Fopentelemetry-go\u002Fotlp","get\u002Fopentelemetry-go\u002F02.otlp",{"title":79,"path":172,"stem":173},"\u002Fget\u002Fopentelemetry-go\u002Ftracing","get\u002Fopentelemetry-go\u002F03.tracing",{"title":83,"path":175,"stem":176},"\u002Fget\u002Fopentelemetry-go\u002Fmetrics","get\u002Fopentelemetry-go\u002F04.metrics",{"title":87,"path":178,"stem":179},"\u002Fget\u002Fopentelemetry-go\u002Flogs","get\u002Fopentelemetry-go\u002F05.logs",{"title":121,"path":181,"stem":182},"\u002Fget\u002Fopentelemetry-go\u002Fresources","get\u002Fopentelemetry-go\u002F06.resources",{"title":95,"path":184,"stem":185},"\u002Fget\u002Fopentelemetry-go\u002Fpropagation","get\u002Fopentelemetry-go\u002F07.propagation",{"title":99,"path":187,"stem":188},"\u002Fget\u002Fopentelemetry-go\u002Fsampling","get\u002Fopentelemetry-go\u002F08.sampling",{"title":190,"path":191,"stem":192},"Serverless","\u002Fget\u002Fopentelemetry-go\u002Fserverless","get\u002Fopentelemetry-go\u002F09.serverless",{"title":131,"path":194,"stem":195},"\u002Fget\u002Fopentelemetry-go\u002Fzero-code","get\u002Fopentelemetry-go\u002F09.zero-code",{"title":197,"path":198,"stem":199,"children":200,"closed":30},"Java","\u002Fget\u002Fopentelemetry-java","get\u002Fopentelemetry-java\u002F01.index",[201,202,205,208,211,214,217,220],{"title":5,"path":198,"stem":199},{"title":79,"path":203,"stem":204},"\u002Fget\u002Fopentelemetry-java\u002Ftracing","get\u002Fopentelemetry-java\u002F03.tracing",{"title":83,"path":206,"stem":207},"\u002Fget\u002Fopentelemetry-java\u002Fmetrics","get\u002Fopentelemetry-java\u002F04.metrics",{"title":87,"path":209,"stem":210},"\u002Fget\u002Fopentelemetry-java\u002Flogs","get\u002Fopentelemetry-java\u002F05.logs",{"title":121,"path":212,"stem":213},"\u002Fget\u002Fopentelemetry-java\u002Fresources","get\u002Fopentelemetry-java\u002F06.resources",{"title":156,"path":215,"stem":216},"\u002Fget\u002Fopentelemetry-java\u002Fpropagation","get\u002Fopentelemetry-java\u002F07.propagation",{"title":99,"path":218,"stem":219},"\u002Fget\u002Fopentelemetry-java\u002Fsampling","get\u002Fopentelemetry-java\u002F08.sampling",{"title":131,"path":221,"stem":222},"\u002Fget\u002Fopentelemetry-java\u002Fzero-code","get\u002Fopentelemetry-java\u002F09.zero-code",{"title":224,"path":225,"stem":226,"children":227,"closed":30},"JavaScript","\u002Fget\u002Fopentelemetry-js","get\u002Fopentelemetry-js\u002F01.index",[228,229,233,237,240,243,246,249,252,255,258],{"title":5,"path":225,"stem":226},{"title":230,"path":231,"stem":232},"Node.js","\u002Fget\u002Fopentelemetry-js\u002Fnode","get\u002Fopentelemetry-js\u002F02.node",{"title":234,"path":235,"stem":236},"Browsers","\u002Fget\u002Fopentelemetry-js\u002Fbrowser","get\u002Fopentelemetry-js\u002F03.browser",{"title":75,"path":238,"stem":239},"\u002Fget\u002Fopentelemetry-js\u002Fotlp","get\u002Fopentelemetry-js\u002F04.otlp",{"title":79,"path":241,"stem":242},"\u002Fget\u002Fopentelemetry-js\u002Ftracing","get\u002Fopentelemetry-js\u002F05.tracing",{"title":83,"path":244,"stem":245},"\u002Fget\u002Fopentelemetry-js\u002Fmetrics","get\u002Fopentelemetry-js\u002F06.metrics",{"title":87,"path":247,"stem":248},"\u002Fget\u002Fopentelemetry-js\u002Flogs","get\u002Fopentelemetry-js\u002F07.logs",{"title":121,"path":250,"stem":251},"\u002Fget\u002Fopentelemetry-js\u002Fresources","get\u002Fopentelemetry-js\u002F08.resources",{"title":156,"path":253,"stem":254},"\u002Fget\u002Fopentelemetry-js\u002Fpropagation","get\u002Fopentelemetry-js\u002F09.propagation",{"title":99,"path":256,"stem":257},"\u002Fget\u002Fopentelemetry-js\u002Fsampling","get\u002Fopentelemetry-js\u002F10.sampling",{"title":131,"path":259,"stem":260},"\u002Fget\u002Fopentelemetry-js\u002Fzero-code","get\u002Fopentelemetry-js\u002F11.zero-code",{"title":262,"path":263,"stem":264,"children":265,"closed":30},"PHP","\u002Fget\u002Fopentelemetry-php","get\u002Fopentelemetry-php\u002F01.index",[266,267,270,273,276,279,282,285,288],{"title":5,"path":263,"stem":264},{"title":75,"path":268,"stem":269},"\u002Fget\u002Fopentelemetry-php\u002Fotlp","get\u002Fopentelemetry-php\u002F02.otlp",{"title":79,"path":271,"stem":272},"\u002Fget\u002Fopentelemetry-php\u002Ftracing","get\u002Fopentelemetry-php\u002F03.tracing",{"title":83,"path":274,"stem":275},"\u002Fget\u002Fopentelemetry-php\u002Fmetrics","get\u002Fopentelemetry-php\u002F04.metrics",{"title":87,"path":277,"stem":278},"\u002Fget\u002Fopentelemetry-php\u002Flogs","get\u002Fopentelemetry-php\u002F05.logs",{"title":121,"path":280,"stem":281},"\u002Fget\u002Fopentelemetry-php\u002Fresources","get\u002Fopentelemetry-php\u002F06.resources",{"title":156,"path":283,"stem":284},"\u002Fget\u002Fopentelemetry-php\u002Fpropagation","get\u002Fopentelemetry-php\u002F07.propagation",{"title":99,"path":286,"stem":287},"\u002Fget\u002Fopentelemetry-php\u002Fsampling","get\u002Fopentelemetry-php\u002F08.sampling",{"title":131,"path":289,"stem":290},"\u002Fget\u002Fopentelemetry-php\u002Fzero-code","get\u002Fopentelemetry-php\u002F09.zero-code",{"title":292,"path":293,"stem":294,"children":295,"closed":30},"Python","\u002Fget\u002Fopentelemetry-python","get\u002Fopentelemetry-python\u002F01.index",[296,297,300,303,306,309,312,315,318],{"title":5,"path":293,"stem":294},{"title":75,"path":298,"stem":299},"\u002Fget\u002Fopentelemetry-python\u002Fotlp","get\u002Fopentelemetry-python\u002F02.otlp",{"title":79,"path":301,"stem":302},"\u002Fget\u002Fopentelemetry-python\u002Ftracing","get\u002Fopentelemetry-python\u002F03.tracing",{"title":83,"path":304,"stem":305},"\u002Fget\u002Fopentelemetry-python\u002Fmetrics","get\u002Fopentelemetry-python\u002F04.metrics",{"title":87,"path":307,"stem":308},"\u002Fget\u002Fopentelemetry-python\u002Flogs","get\u002Fopentelemetry-python\u002F05.logs",{"title":121,"path":310,"stem":311},"\u002Fget\u002Fopentelemetry-python\u002Fresources","get\u002Fopentelemetry-python\u002F06.resources",{"title":156,"path":313,"stem":314},"\u002Fget\u002Fopentelemetry-python\u002Fpropagation","get\u002Fopentelemetry-python\u002F07.propagation",{"title":99,"path":316,"stem":317},"\u002Fget\u002Fopentelemetry-python\u002Fsampling","get\u002Fopentelemetry-python\u002F08.sampling",{"title":131,"path":319,"stem":320},"\u002Fget\u002Fopentelemetry-python\u002Fzero-code","get\u002Fopentelemetry-python\u002F09.zero-code",{"title":322,"path":323,"stem":324,"children":325,"closed":30},"Ruby","\u002Fget\u002Fopentelemetry-ruby","get\u002Fopentelemetry-ruby\u002F01.index",[326,327,330,333,336,339,342,345],{"title":5,"path":323,"stem":324},{"title":75,"path":328,"stem":329},"\u002Fget\u002Fopentelemetry-ruby\u002Fotlp","get\u002Fopentelemetry-ruby\u002F02.otlp",{"title":79,"path":331,"stem":332},"\u002Fget\u002Fopentelemetry-ruby\u002Ftracing","get\u002Fopentelemetry-ruby\u002F03.tracing",{"title":83,"path":334,"stem":335},"\u002Fget\u002Fopentelemetry-ruby\u002Fmetrics","get\u002Fopentelemetry-ruby\u002F04.metrics",{"title":87,"path":337,"stem":338},"\u002Fget\u002Fopentelemetry-ruby\u002Flogs","get\u002Fopentelemetry-ruby\u002F05.logs",{"title":121,"path":340,"stem":341},"\u002Fget\u002Fopentelemetry-ruby\u002Fresources","get\u002Fopentelemetry-ruby\u002F06.resources",{"title":156,"path":343,"stem":344},"\u002Fget\u002Fopentelemetry-ruby\u002Fpropagation","get\u002Fopentelemetry-ruby\u002F07.propagation",{"title":99,"path":346,"stem":347},"\u002Fget\u002Fopentelemetry-ruby\u002Fsampling","get\u002Fopentelemetry-ruby\u002F08.sampling",{"title":349,"path":350,"stem":351,"children":352,"closed":30},"Rust","\u002Fget\u002Fopentelemetry-rust","get\u002Fopentelemetry-rust\u002F01.index",[353,354,357,360,363,366,369,372],{"title":5,"path":350,"stem":351},{"title":75,"path":355,"stem":356},"\u002Fget\u002Fopentelemetry-rust\u002Fotlp","get\u002Fopentelemetry-rust\u002F02.otlp",{"title":79,"path":358,"stem":359},"\u002Fget\u002Fopentelemetry-rust\u002Ftracing","get\u002Fopentelemetry-rust\u002F03.tracing",{"title":83,"path":361,"stem":362},"\u002Fget\u002Fopentelemetry-rust\u002Fmetrics","get\u002Fopentelemetry-rust\u002F04.metrics",{"title":87,"path":364,"stem":365},"\u002Fget\u002Fopentelemetry-rust\u002Flogs","get\u002Fopentelemetry-rust\u002F05.logs",{"title":121,"path":367,"stem":368},"\u002Fget\u002Fopentelemetry-rust\u002Fresources","get\u002Fopentelemetry-rust\u002F06.resources",{"title":156,"path":370,"stem":371},"\u002Fget\u002Fopentelemetry-rust\u002Fpropagation","get\u002Fopentelemetry-rust\u002F07.propagation",{"title":99,"path":373,"stem":374},"\u002Fget\u002Fopentelemetry-rust\u002Fsampling","get\u002Fopentelemetry-rust\u002F08.sampling",{"title":376,"path":377,"stem":378,"children":379,"closed":30},"Swift","\u002Fget\u002Fopentelemetry-swift","get\u002Fopentelemetry-swift\u002F01.index",[380,381,384,387,390,393,397,400],{"title":5,"path":377,"stem":378},{"title":75,"path":382,"stem":383},"\u002Fget\u002Fopentelemetry-swift\u002Fotlp","get\u002Fopentelemetry-swift\u002F02.otlp",{"title":79,"path":385,"stem":386},"\u002Fget\u002Fopentelemetry-swift\u002Ftracing","get\u002Fopentelemetry-swift\u002F03.tracing",{"title":83,"path":388,"stem":389},"\u002Fget\u002Fopentelemetry-swift\u002Fmetrics","get\u002Fopentelemetry-swift\u002F04.metrics",{"title":87,"path":391,"stem":392},"\u002Fget\u002Fopentelemetry-swift\u002Flogs","get\u002Fopentelemetry-swift\u002F05.logs",{"title":394,"path":395,"stem":396},"Resource Attributes","\u002Fget\u002Fopentelemetry-swift\u002Fresources","get\u002Fopentelemetry-swift\u002F06.resources",{"title":95,"path":398,"stem":399},"\u002Fget\u002Fopentelemetry-swift\u002Fpropagation","get\u002Fopentelemetry-swift\u002F07.propagation",{"title":99,"path":401,"stem":402},"\u002Fget\u002Fopentelemetry-swift\u002Fsampling","get\u002Fopentelemetry-swift\u002F08.sampling",{"page":404,"surround":1922},{"id":405,"title":406,"body":407,"description":1909,"extension":1910,"image":1911,"meta":1912,"navigation":1918,"path":88,"seo":1919,"stem":89,"surround_disabled":1920,"__hash__":1921},"get\u002Fget\u002Fopentelemetry-cpp\u002F05.logs.md","OpenTelemetry Logs for C++",{"type":408,"value":409,"toc":1899},"minimark",[410,415,420,424,434,437,440,443,845,849,934,938,1075,1079,1082,1099,1322,1326,1870,1874,1895],[411,412],"img",{"src":413,"width":414},"\u002Fdevicon\u002Fcplusplus-original.svg",200,[416,417,419],"h2",{"id":418},"prerequisites","Prerequisites",[421,422],"partial",{"path":423},"otel-prereq-cpp",[425,426,427,428,433],"p",{},"If you are not familiar with logs terminology, read the introduction to ",[429,430,432],"a",{"href":431},"\u002Fopentelemetry\u002Flogs","OpenTelemetry Logs"," first.",[416,435,35],{"id":436},"overview",[425,438,439],{},"OpenTelemetry C++ provides a native Logs API for emitting structured log records. The Logs API integrates with the tracing system to automatically correlate logs with traces.",[416,441,57],{"id":442},"configuration",[444,445,450],"pre",{"className":446,"code":447,"language":448,"meta":449,"style":449},"language-cpp shiki shiki-themes github-light","#include \u003Ccstdlib>\n#include \"opentelemetry\u002Fexporters\u002Fotlp\u002Fotlp_http_log_record_exporter_factory.h\"\n#include \"opentelemetry\u002Fexporters\u002Fotlp\u002Fotlp_http_log_record_exporter_options.h\"\n#include \"opentelemetry\u002Fsdk\u002Flogs\u002Flogger_provider_factory.h\"\n#include \"opentelemetry\u002Fsdk\u002Flogs\u002Fsimple_log_record_processor_factory.h\"\n#include \"opentelemetry\u002Flogs\u002Fprovider.h\"\n\nnamespace otlp = opentelemetry::exporter::otlp;\nnamespace logs_sdk = opentelemetry::sdk::logs;\nnamespace logs_api = opentelemetry::logs;\n\nvoid InitLogger() {\n    otlp::OtlpHttpLogRecordExporterOptions opts;\n    opts.url = \"https:\u002F\u002Fapi.uptrace.dev\u002Fv1\u002Flogs\";\n\n    const char* dsn = std::getenv(\"UPTRACE_DSN\");\n    opts.http_headers = {{\"uptrace-dsn\", dsn ? dsn : \"\"}};\n\n    auto exporter = otlp::OtlpHttpLogRecordExporterFactory::Create(opts);\n    auto processor = logs_sdk::SimpleLogRecordProcessorFactory::Create(\n        std::move(exporter));\n\n    std::shared_ptr\u003Clogs_api::LoggerProvider> provider =\n        logs_sdk::LoggerProviderFactory::Create(std::move(processor));\n    logs_api::Provider::SetLoggerProvider(provider);\n}\n","cpp","",[451,452,453,466,474,482,490,498,506,512,543,567,585,590,602,611,625,630,661,692,697,723,747,761,766,793,820,839],"code",{"__ignoreMap":449},[454,455,458,462],"span",{"class":456,"line":457},"line",1,[454,459,461],{"class":460},"sD7c4","#include",[454,463,465],{"class":464},"sYBdl"," \u003Ccstdlib>\n",[454,467,469,471],{"class":456,"line":468},2,[454,470,461],{"class":460},[454,472,473],{"class":464}," \"opentelemetry\u002Fexporters\u002Fotlp\u002Fotlp_http_log_record_exporter_factory.h\"\n",[454,475,477,479],{"class":456,"line":476},3,[454,478,461],{"class":460},[454,480,481],{"class":464}," \"opentelemetry\u002Fexporters\u002Fotlp\u002Fotlp_http_log_record_exporter_options.h\"\n",[454,483,485,487],{"class":456,"line":484},4,[454,486,461],{"class":460},[454,488,489],{"class":464}," \"opentelemetry\u002Fsdk\u002Flogs\u002Flogger_provider_factory.h\"\n",[454,491,493,495],{"class":456,"line":492},5,[454,494,461],{"class":460},[454,496,497],{"class":464}," \"opentelemetry\u002Fsdk\u002Flogs\u002Fsimple_log_record_processor_factory.h\"\n",[454,499,501,503],{"class":456,"line":500},6,[454,502,461],{"class":460},[454,504,505],{"class":464}," \"opentelemetry\u002Flogs\u002Fprovider.h\"\n",[454,507,509],{"class":456,"line":508},7,[454,510,511],{"emptyLinePlaceholder":30},"\n",[454,513,515,518,522,525,528,532,535,537,540],{"class":456,"line":514},8,[454,516,517],{"class":460},"namespace",[454,519,521],{"class":520},"s7eDp"," otlp",[454,523,524],{"class":460}," =",[454,526,527],{"class":520}," opentelemetry",[454,529,531],{"class":530},"sgsFI","::",[454,533,534],{"class":520},"exporter",[454,536,531],{"class":530},[454,538,539],{"class":520},"otlp",[454,541,542],{"class":530},";\n",[454,544,546,548,551,553,555,557,560,562,565],{"class":456,"line":545},9,[454,547,517],{"class":460},[454,549,550],{"class":520}," logs_sdk",[454,552,524],{"class":460},[454,554,527],{"class":520},[454,556,531],{"class":530},[454,558,559],{"class":520},"sdk",[454,561,531],{"class":530},[454,563,564],{"class":520},"logs",[454,566,542],{"class":530},[454,568,570,572,575,577,579,581,583],{"class":456,"line":569},10,[454,571,517],{"class":460},[454,573,574],{"class":520}," logs_api",[454,576,524],{"class":460},[454,578,527],{"class":520},[454,580,531],{"class":530},[454,582,564],{"class":520},[454,584,542],{"class":530},[454,586,588],{"class":456,"line":587},11,[454,589,511],{"emptyLinePlaceholder":30},[454,591,593,596,599],{"class":456,"line":592},12,[454,594,595],{"class":460},"void",[454,597,598],{"class":520}," InitLogger",[454,600,601],{"class":530},"() {\n",[454,603,605,608],{"class":456,"line":604},13,[454,606,607],{"class":520},"    otlp",[454,609,610],{"class":530},"::OtlpHttpLogRecordExporterOptions opts;\n",[454,612,614,617,620,623],{"class":456,"line":613},14,[454,615,616],{"class":530},"    opts.url ",[454,618,619],{"class":460},"=",[454,621,622],{"class":464}," \"https:\u002F\u002Fapi.uptrace.dev\u002Fv1\u002Flogs\"",[454,624,542],{"class":530},[454,626,628],{"class":456,"line":627},15,[454,629,511],{"emptyLinePlaceholder":30},[454,631,633,636,639,642,644,647,649,652,655,658],{"class":456,"line":632},16,[454,634,635],{"class":460},"    const",[454,637,638],{"class":460}," char*",[454,640,641],{"class":530}," dsn ",[454,643,619],{"class":460},[454,645,646],{"class":520}," std",[454,648,531],{"class":530},[454,650,651],{"class":520},"getenv",[454,653,654],{"class":530},"(",[454,656,657],{"class":464},"\"UPTRACE_DSN\"",[454,659,660],{"class":530},");\n",[454,662,664,667,669,672,675,678,681,683,686,689],{"class":456,"line":663},17,[454,665,666],{"class":530},"    opts.http_headers ",[454,668,619],{"class":460},[454,670,671],{"class":530}," {{",[454,673,674],{"class":464},"\"uptrace-dsn\"",[454,676,677],{"class":530},", dsn ",[454,679,680],{"class":460},"?",[454,682,641],{"class":530},[454,684,685],{"class":460},":",[454,687,688],{"class":464}," \"\"",[454,690,691],{"class":530},"}};\n",[454,693,695],{"class":456,"line":694},18,[454,696,511],{"emptyLinePlaceholder":30},[454,698,700,703,706,708,710,712,715,717,720],{"class":456,"line":699},19,[454,701,702],{"class":460},"    auto",[454,704,705],{"class":530}," exporter ",[454,707,619],{"class":460},[454,709,521],{"class":520},[454,711,531],{"class":530},[454,713,714],{"class":520},"OtlpHttpLogRecordExporterFactory",[454,716,531],{"class":530},[454,718,719],{"class":520},"Create",[454,721,722],{"class":530},"(opts);\n",[454,724,726,728,731,733,735,737,740,742,744],{"class":456,"line":725},20,[454,727,702],{"class":460},[454,729,730],{"class":530}," processor ",[454,732,619],{"class":460},[454,734,550],{"class":520},[454,736,531],{"class":530},[454,738,739],{"class":520},"SimpleLogRecordProcessorFactory",[454,741,531],{"class":530},[454,743,719],{"class":520},[454,745,746],{"class":530},"(\n",[454,748,750,753,755,758],{"class":456,"line":749},21,[454,751,752],{"class":520},"        std",[454,754,531],{"class":530},[454,756,757],{"class":520},"move",[454,759,760],{"class":530},"(exporter));\n",[454,762,764],{"class":456,"line":763},22,[454,765,511],{"emptyLinePlaceholder":30},[454,767,769,772,775,778,781,784,787,790],{"class":456,"line":768},23,[454,770,771],{"class":520},"    std",[454,773,774],{"class":530},"::shared_ptr",[454,776,777],{"class":460},"\u003C",[454,779,780],{"class":520},"logs_api",[454,782,783],{"class":530},"::LoggerProvider",[454,785,786],{"class":460},">",[454,788,789],{"class":530}," provider ",[454,791,792],{"class":460},"=\n",[454,794,796,799,801,804,806,808,810,813,815,817],{"class":456,"line":795},24,[454,797,798],{"class":520},"        logs_sdk",[454,800,531],{"class":530},[454,802,803],{"class":520},"LoggerProviderFactory",[454,805,531],{"class":530},[454,807,719],{"class":520},[454,809,654],{"class":530},[454,811,812],{"class":520},"std",[454,814,531],{"class":530},[454,816,757],{"class":520},[454,818,819],{"class":530},"(processor));\n",[454,821,823,826,828,831,833,836],{"class":456,"line":822},25,[454,824,825],{"class":520},"    logs_api",[454,827,531],{"class":530},[454,829,830],{"class":520},"Provider",[454,832,531],{"class":530},[454,834,835],{"class":520},"SetLoggerProvider",[454,837,838],{"class":530},"(provider);\n",[454,840,842],{"class":456,"line":841},26,[454,843,844],{"class":530},"}\n",[416,846,848],{"id":847},"emitting-logs","Emitting logs",[444,850,852],{"className":446,"code":851,"language":448,"meta":449,"style":449},"auto logger = logs_api::Provider::GetLoggerProvider()\n    ->GetLogger(\"myservice\", \"1.0.0\");\n\nlogger->EmitLogRecord(\n    logs_api::Severity::kInfo,\n    \"Application started successfully\"\n);\n",[451,853,854,878,899,903,913,925,930],{"__ignoreMap":449},[454,855,856,859,862,864,866,868,870,872,875],{"class":456,"line":457},[454,857,858],{"class":460},"auto",[454,860,861],{"class":530}," logger ",[454,863,619],{"class":460},[454,865,574],{"class":520},[454,867,531],{"class":530},[454,869,830],{"class":520},[454,871,531],{"class":530},[454,873,874],{"class":520},"GetLoggerProvider",[454,876,877],{"class":530},"()\n",[454,879,880,883,886,888,891,894,897],{"class":456,"line":468},[454,881,882],{"class":460},"    ->",[454,884,885],{"class":520},"GetLogger",[454,887,654],{"class":530},[454,889,890],{"class":464},"\"myservice\"",[454,892,893],{"class":530},", ",[454,895,896],{"class":464},"\"1.0.0\"",[454,898,660],{"class":530},[454,900,901],{"class":456,"line":476},[454,902,511],{"emptyLinePlaceholder":30},[454,904,905,908,911],{"class":456,"line":484},[454,906,907],{"class":530},"logger->",[454,909,910],{"class":520},"EmitLogRecord",[454,912,746],{"class":530},[454,914,915,917,919,922],{"class":456,"line":492},[454,916,825],{"class":520},[454,918,531],{"class":530},[454,920,921],{"class":520},"Severity",[454,923,924],{"class":530},"::kInfo,\n",[454,926,927],{"class":456,"line":500},[454,928,929],{"class":464},"    \"Application started successfully\"\n",[454,931,932],{"class":456,"line":508},[454,933,660],{"class":530},[416,935,937],{"id":936},"severity-levels","Severity levels",[444,939,941],{"className":446,"code":940,"language":448,"meta":449,"style":449},"logger->EmitLogRecord(logs_api::Severity::kTrace, \"Trace message\");\nlogger->EmitLogRecord(logs_api::Severity::kDebug, \"Debug message\");\nlogger->EmitLogRecord(logs_api::Severity::kInfo, \"Info message\");\nlogger->EmitLogRecord(logs_api::Severity::kWarn, \"Warning message\");\nlogger->EmitLogRecord(logs_api::Severity::kError, \"Error message\");\nlogger->EmitLogRecord(logs_api::Severity::kFatal, \"Fatal message\");\n",[451,942,943,965,987,1009,1031,1053],{"__ignoreMap":449},[454,944,945,947,949,951,953,955,957,960,963],{"class":456,"line":457},[454,946,907],{"class":530},[454,948,910],{"class":520},[454,950,654],{"class":530},[454,952,780],{"class":520},[454,954,531],{"class":530},[454,956,921],{"class":520},[454,958,959],{"class":530},"::kTrace, ",[454,961,962],{"class":464},"\"Trace message\"",[454,964,660],{"class":530},[454,966,967,969,971,973,975,977,979,982,985],{"class":456,"line":468},[454,968,907],{"class":530},[454,970,910],{"class":520},[454,972,654],{"class":530},[454,974,780],{"class":520},[454,976,531],{"class":530},[454,978,921],{"class":520},[454,980,981],{"class":530},"::kDebug, ",[454,983,984],{"class":464},"\"Debug message\"",[454,986,660],{"class":530},[454,988,989,991,993,995,997,999,1001,1004,1007],{"class":456,"line":476},[454,990,907],{"class":530},[454,992,910],{"class":520},[454,994,654],{"class":530},[454,996,780],{"class":520},[454,998,531],{"class":530},[454,1000,921],{"class":520},[454,1002,1003],{"class":530},"::kInfo, ",[454,1005,1006],{"class":464},"\"Info message\"",[454,1008,660],{"class":530},[454,1010,1011,1013,1015,1017,1019,1021,1023,1026,1029],{"class":456,"line":484},[454,1012,907],{"class":530},[454,1014,910],{"class":520},[454,1016,654],{"class":530},[454,1018,780],{"class":520},[454,1020,531],{"class":530},[454,1022,921],{"class":520},[454,1024,1025],{"class":530},"::kWarn, ",[454,1027,1028],{"class":464},"\"Warning message\"",[454,1030,660],{"class":530},[454,1032,1033,1035,1037,1039,1041,1043,1045,1048,1051],{"class":456,"line":492},[454,1034,907],{"class":530},[454,1036,910],{"class":520},[454,1038,654],{"class":530},[454,1040,780],{"class":520},[454,1042,531],{"class":530},[454,1044,921],{"class":520},[454,1046,1047],{"class":530},"::kError, ",[454,1049,1050],{"class":464},"\"Error message\"",[454,1052,660],{"class":530},[454,1054,1055,1057,1059,1061,1063,1065,1067,1070,1073],{"class":456,"line":500},[454,1056,907],{"class":530},[454,1058,910],{"class":520},[454,1060,654],{"class":530},[454,1062,780],{"class":520},[454,1064,531],{"class":530},[454,1066,921],{"class":520},[454,1068,1069],{"class":530},"::kFatal, ",[454,1071,1072],{"class":464},"\"Fatal message\"",[454,1074,660],{"class":530},[416,1076,1078],{"id":1077},"log-trace-correlation","Log-trace correlation",[425,1080,1081],{},"When you emit a log within an active trace span, OpenTelemetry automatically includes:",[1083,1084,1085,1093],"ul",{},[1086,1087,1088,1092],"li",{},[1089,1090,1091],"strong",{},"trace_id",": Links log to the entire distributed trace",[1086,1094,1095,1098],{},[1089,1096,1097],{},"span_id",": Links log to the specific operation",[444,1100,1102],{"className":446,"code":1101,"language":448,"meta":449,"style":449},"#include \"opentelemetry\u002Ftrace\u002Fprovider.h\"\n#include \"opentelemetry\u002Flogs\u002Fprovider.h\"\n\nnamespace trace_api = opentelemetry::trace;\nnamespace logs_api = opentelemetry::logs;\n\nvoid processRequest() {\n    auto tracer = trace_api::Provider::GetTracerProvider()->GetTracer(\"myservice\");\n    auto logger = logs_api::Provider::GetLoggerProvider()->GetLogger(\"myservice\");\n\n    auto span = tracer->StartSpan(\"process-request\");\n    auto scope = tracer->WithActiveSpan(span);\n\n    \u002F\u002F Logs are automatically correlated with the span\n    logger->EmitLogRecord(logs_api::Severity::kInfo, \"Processing request\");\n\n    span->End();\n}\n",[451,1103,1104,1111,1117,1121,1139,1155,1159,1168,1200,1228,1232,1254,1271,1275,1281,1303,1307,1318],{"__ignoreMap":449},[454,1105,1106,1108],{"class":456,"line":457},[454,1107,461],{"class":460},[454,1109,1110],{"class":464}," \"opentelemetry\u002Ftrace\u002Fprovider.h\"\n",[454,1112,1113,1115],{"class":456,"line":468},[454,1114,461],{"class":460},[454,1116,505],{"class":464},[454,1118,1119],{"class":456,"line":476},[454,1120,511],{"emptyLinePlaceholder":30},[454,1122,1123,1125,1128,1130,1132,1134,1137],{"class":456,"line":484},[454,1124,517],{"class":460},[454,1126,1127],{"class":520}," trace_api",[454,1129,524],{"class":460},[454,1131,527],{"class":520},[454,1133,531],{"class":530},[454,1135,1136],{"class":520},"trace",[454,1138,542],{"class":530},[454,1140,1141,1143,1145,1147,1149,1151,1153],{"class":456,"line":492},[454,1142,517],{"class":460},[454,1144,574],{"class":520},[454,1146,524],{"class":460},[454,1148,527],{"class":520},[454,1150,531],{"class":530},[454,1152,564],{"class":520},[454,1154,542],{"class":530},[454,1156,1157],{"class":456,"line":500},[454,1158,511],{"emptyLinePlaceholder":30},[454,1160,1161,1163,1166],{"class":456,"line":508},[454,1162,595],{"class":460},[454,1164,1165],{"class":520}," processRequest",[454,1167,601],{"class":530},[454,1169,1170,1172,1175,1177,1179,1181,1183,1185,1188,1191,1194,1196,1198],{"class":456,"line":514},[454,1171,702],{"class":460},[454,1173,1174],{"class":530}," tracer ",[454,1176,619],{"class":460},[454,1178,1127],{"class":520},[454,1180,531],{"class":530},[454,1182,830],{"class":520},[454,1184,531],{"class":530},[454,1186,1187],{"class":520},"GetTracerProvider",[454,1189,1190],{"class":530},"()->",[454,1192,1193],{"class":520},"GetTracer",[454,1195,654],{"class":530},[454,1197,890],{"class":464},[454,1199,660],{"class":530},[454,1201,1202,1204,1206,1208,1210,1212,1214,1216,1218,1220,1222,1224,1226],{"class":456,"line":545},[454,1203,702],{"class":460},[454,1205,861],{"class":530},[454,1207,619],{"class":460},[454,1209,574],{"class":520},[454,1211,531],{"class":530},[454,1213,830],{"class":520},[454,1215,531],{"class":530},[454,1217,874],{"class":520},[454,1219,1190],{"class":530},[454,1221,885],{"class":520},[454,1223,654],{"class":530},[454,1225,890],{"class":464},[454,1227,660],{"class":530},[454,1229,1230],{"class":456,"line":569},[454,1231,511],{"emptyLinePlaceholder":30},[454,1233,1234,1236,1239,1241,1244,1247,1249,1252],{"class":456,"line":587},[454,1235,702],{"class":460},[454,1237,1238],{"class":530}," span ",[454,1240,619],{"class":460},[454,1242,1243],{"class":530}," tracer->",[454,1245,1246],{"class":520},"StartSpan",[454,1248,654],{"class":530},[454,1250,1251],{"class":464},"\"process-request\"",[454,1253,660],{"class":530},[454,1255,1256,1258,1261,1263,1265,1268],{"class":456,"line":592},[454,1257,702],{"class":460},[454,1259,1260],{"class":530}," scope ",[454,1262,619],{"class":460},[454,1264,1243],{"class":530},[454,1266,1267],{"class":520},"WithActiveSpan",[454,1269,1270],{"class":530},"(span);\n",[454,1272,1273],{"class":456,"line":604},[454,1274,511],{"emptyLinePlaceholder":30},[454,1276,1277],{"class":456,"line":613},[454,1278,1280],{"class":1279},"sAwPA","    \u002F\u002F Logs are automatically correlated with the span\n",[454,1282,1283,1286,1288,1290,1292,1294,1296,1298,1301],{"class":456,"line":627},[454,1284,1285],{"class":530},"    logger->",[454,1287,910],{"class":520},[454,1289,654],{"class":530},[454,1291,780],{"class":520},[454,1293,531],{"class":530},[454,1295,921],{"class":520},[454,1297,1003],{"class":530},[454,1299,1300],{"class":464},"\"Processing request\"",[454,1302,660],{"class":530},[454,1304,1305],{"class":456,"line":632},[454,1306,511],{"emptyLinePlaceholder":30},[454,1308,1309,1312,1315],{"class":456,"line":663},[454,1310,1311],{"class":530},"    span->",[454,1313,1314],{"class":520},"End",[454,1316,1317],{"class":530},"();\n",[454,1319,1320],{"class":456,"line":694},[454,1321,844],{"class":530},[416,1323,1325],{"id":1324},"complete-example","Complete example",[444,1327,1329],{"className":446,"code":1328,"language":448,"meta":449,"style":449},"#include \u003Ccstdlib>\n#include \"opentelemetry\u002Fexporters\u002Fotlp\u002Fotlp_http_log_record_exporter_factory.h\"\n#include \"opentelemetry\u002Fexporters\u002Fotlp\u002Fotlp_http_log_record_exporter_options.h\"\n#include \"opentelemetry\u002Fsdk\u002Flogs\u002Flogger_provider_factory.h\"\n#include \"opentelemetry\u002Fsdk\u002Flogs\u002Flogger_provider.h\"\n#include \"opentelemetry\u002Fsdk\u002Flogs\u002Fsimple_log_record_processor_factory.h\"\n#include \"opentelemetry\u002Flogs\u002Fprovider.h\"\n\nnamespace otlp = opentelemetry::exporter::otlp;\nnamespace logs_sdk = opentelemetry::sdk::logs;\nnamespace logs_api = opentelemetry::logs;\n\nvoid InitLogger() {\n    otlp::OtlpHttpLogRecordExporterOptions opts;\n    opts.url = \"https:\u002F\u002Fapi.uptrace.dev\u002Fv1\u002Flogs\";\n\n    const char* dsn = std::getenv(\"UPTRACE_DSN\");\n    opts.http_headers = {{\"uptrace-dsn\", dsn ? dsn : \"\"}};\n\n    auto exporter = otlp::OtlpHttpLogRecordExporterFactory::Create(opts);\n    auto processor = logs_sdk::SimpleLogRecordProcessorFactory::Create(\n        std::move(exporter));\n\n    std::shared_ptr\u003Clogs_api::LoggerProvider> provider =\n        logs_sdk::LoggerProviderFactory::Create(std::move(processor));\n    logs_api::Provider::SetLoggerProvider(provider);\n}\n\nvoid CleanupLogger() {\n    auto provider = logs_api::Provider::GetLoggerProvider();\n    if (provider) {\n        static_cast\u003Clogs_sdk::LoggerProvider*>(provider.get())->ForceFlush();\n    }\n    std::shared_ptr\u003Clogs_api::LoggerProvider> none;\n    logs_api::Provider::SetLoggerProvider(none);\n}\n\nint main() {\n    InitLogger();\n\n    auto logger = logs_api::Provider::GetLoggerProvider()\n        ->GetLogger(\"myservice\", \"1.0.0\");\n\n    logger->EmitLogRecord(logs_api::Severity::kInfo, \"Application started\");\n\n    CleanupLogger();\n    return 0;\n}\n",[451,1330,1331,1337,1343,1349,1355,1362,1368,1374,1378,1398,1418,1434,1438,1446,1452,1462,1466,1488,1510,1514,1534,1554,1564,1568,1586,1608,1622,1627,1632,1642,1663,1672,1700,1706,1724,1740,1745,1750,1761,1769,1774,1795,1813,1818,1840,1845,1853,1865],{"__ignoreMap":449},[454,1332,1333,1335],{"class":456,"line":457},[454,1334,461],{"class":460},[454,1336,465],{"class":464},[454,1338,1339,1341],{"class":456,"line":468},[454,1340,461],{"class":460},[454,1342,473],{"class":464},[454,1344,1345,1347],{"class":456,"line":476},[454,1346,461],{"class":460},[454,1348,481],{"class":464},[454,1350,1351,1353],{"class":456,"line":484},[454,1352,461],{"class":460},[454,1354,489],{"class":464},[454,1356,1357,1359],{"class":456,"line":492},[454,1358,461],{"class":460},[454,1360,1361],{"class":464}," \"opentelemetry\u002Fsdk\u002Flogs\u002Flogger_provider.h\"\n",[454,1363,1364,1366],{"class":456,"line":500},[454,1365,461],{"class":460},[454,1367,497],{"class":464},[454,1369,1370,1372],{"class":456,"line":508},[454,1371,461],{"class":460},[454,1373,505],{"class":464},[454,1375,1376],{"class":456,"line":514},[454,1377,511],{"emptyLinePlaceholder":30},[454,1379,1380,1382,1384,1386,1388,1390,1392,1394,1396],{"class":456,"line":545},[454,1381,517],{"class":460},[454,1383,521],{"class":520},[454,1385,524],{"class":460},[454,1387,527],{"class":520},[454,1389,531],{"class":530},[454,1391,534],{"class":520},[454,1393,531],{"class":530},[454,1395,539],{"class":520},[454,1397,542],{"class":530},[454,1399,1400,1402,1404,1406,1408,1410,1412,1414,1416],{"class":456,"line":569},[454,1401,517],{"class":460},[454,1403,550],{"class":520},[454,1405,524],{"class":460},[454,1407,527],{"class":520},[454,1409,531],{"class":530},[454,1411,559],{"class":520},[454,1413,531],{"class":530},[454,1415,564],{"class":520},[454,1417,542],{"class":530},[454,1419,1420,1422,1424,1426,1428,1430,1432],{"class":456,"line":587},[454,1421,517],{"class":460},[454,1423,574],{"class":520},[454,1425,524],{"class":460},[454,1427,527],{"class":520},[454,1429,531],{"class":530},[454,1431,564],{"class":520},[454,1433,542],{"class":530},[454,1435,1436],{"class":456,"line":592},[454,1437,511],{"emptyLinePlaceholder":30},[454,1439,1440,1442,1444],{"class":456,"line":604},[454,1441,595],{"class":460},[454,1443,598],{"class":520},[454,1445,601],{"class":530},[454,1447,1448,1450],{"class":456,"line":613},[454,1449,607],{"class":520},[454,1451,610],{"class":530},[454,1453,1454,1456,1458,1460],{"class":456,"line":627},[454,1455,616],{"class":530},[454,1457,619],{"class":460},[454,1459,622],{"class":464},[454,1461,542],{"class":530},[454,1463,1464],{"class":456,"line":632},[454,1465,511],{"emptyLinePlaceholder":30},[454,1467,1468,1470,1472,1474,1476,1478,1480,1482,1484,1486],{"class":456,"line":663},[454,1469,635],{"class":460},[454,1471,638],{"class":460},[454,1473,641],{"class":530},[454,1475,619],{"class":460},[454,1477,646],{"class":520},[454,1479,531],{"class":530},[454,1481,651],{"class":520},[454,1483,654],{"class":530},[454,1485,657],{"class":464},[454,1487,660],{"class":530},[454,1489,1490,1492,1494,1496,1498,1500,1502,1504,1506,1508],{"class":456,"line":694},[454,1491,666],{"class":530},[454,1493,619],{"class":460},[454,1495,671],{"class":530},[454,1497,674],{"class":464},[454,1499,677],{"class":530},[454,1501,680],{"class":460},[454,1503,641],{"class":530},[454,1505,685],{"class":460},[454,1507,688],{"class":464},[454,1509,691],{"class":530},[454,1511,1512],{"class":456,"line":699},[454,1513,511],{"emptyLinePlaceholder":30},[454,1515,1516,1518,1520,1522,1524,1526,1528,1530,1532],{"class":456,"line":725},[454,1517,702],{"class":460},[454,1519,705],{"class":530},[454,1521,619],{"class":460},[454,1523,521],{"class":520},[454,1525,531],{"class":530},[454,1527,714],{"class":520},[454,1529,531],{"class":530},[454,1531,719],{"class":520},[454,1533,722],{"class":530},[454,1535,1536,1538,1540,1542,1544,1546,1548,1550,1552],{"class":456,"line":749},[454,1537,702],{"class":460},[454,1539,730],{"class":530},[454,1541,619],{"class":460},[454,1543,550],{"class":520},[454,1545,531],{"class":530},[454,1547,739],{"class":520},[454,1549,531],{"class":530},[454,1551,719],{"class":520},[454,1553,746],{"class":530},[454,1555,1556,1558,1560,1562],{"class":456,"line":763},[454,1557,752],{"class":520},[454,1559,531],{"class":530},[454,1561,757],{"class":520},[454,1563,760],{"class":530},[454,1565,1566],{"class":456,"line":768},[454,1567,511],{"emptyLinePlaceholder":30},[454,1569,1570,1572,1574,1576,1578,1580,1582,1584],{"class":456,"line":795},[454,1571,771],{"class":520},[454,1573,774],{"class":530},[454,1575,777],{"class":460},[454,1577,780],{"class":520},[454,1579,783],{"class":530},[454,1581,786],{"class":460},[454,1583,789],{"class":530},[454,1585,792],{"class":460},[454,1587,1588,1590,1592,1594,1596,1598,1600,1602,1604,1606],{"class":456,"line":822},[454,1589,798],{"class":520},[454,1591,531],{"class":530},[454,1593,803],{"class":520},[454,1595,531],{"class":530},[454,1597,719],{"class":520},[454,1599,654],{"class":530},[454,1601,812],{"class":520},[454,1603,531],{"class":530},[454,1605,757],{"class":520},[454,1607,819],{"class":530},[454,1609,1610,1612,1614,1616,1618,1620],{"class":456,"line":841},[454,1611,825],{"class":520},[454,1613,531],{"class":530},[454,1615,830],{"class":520},[454,1617,531],{"class":530},[454,1619,835],{"class":520},[454,1621,838],{"class":530},[454,1623,1625],{"class":456,"line":1624},27,[454,1626,844],{"class":530},[454,1628,1630],{"class":456,"line":1629},28,[454,1631,511],{"emptyLinePlaceholder":30},[454,1633,1635,1637,1640],{"class":456,"line":1634},29,[454,1636,595],{"class":460},[454,1638,1639],{"class":520}," CleanupLogger",[454,1641,601],{"class":530},[454,1643,1645,1647,1649,1651,1653,1655,1657,1659,1661],{"class":456,"line":1644},30,[454,1646,702],{"class":460},[454,1648,789],{"class":530},[454,1650,619],{"class":460},[454,1652,574],{"class":520},[454,1654,531],{"class":530},[454,1656,830],{"class":520},[454,1658,531],{"class":530},[454,1660,874],{"class":520},[454,1662,1317],{"class":530},[454,1664,1666,1669],{"class":456,"line":1665},31,[454,1667,1668],{"class":460},"    if",[454,1670,1671],{"class":530}," (provider) {\n",[454,1673,1675,1678,1681,1683,1686,1689,1692,1695,1698],{"class":456,"line":1674},32,[454,1676,1677],{"class":460},"        static_cast\u003C",[454,1679,1680],{"class":520},"logs_sdk",[454,1682,783],{"class":530},[454,1684,1685],{"class":460},"*>",[454,1687,1688],{"class":530},"(provider.",[454,1690,1691],{"class":520},"get",[454,1693,1694],{"class":530},"())->",[454,1696,1697],{"class":520},"ForceFlush",[454,1699,1317],{"class":530},[454,1701,1703],{"class":456,"line":1702},33,[454,1704,1705],{"class":530},"    }\n",[454,1707,1709,1711,1713,1715,1717,1719,1721],{"class":456,"line":1708},34,[454,1710,771],{"class":520},[454,1712,774],{"class":530},[454,1714,777],{"class":460},[454,1716,780],{"class":520},[454,1718,783],{"class":530},[454,1720,786],{"class":460},[454,1722,1723],{"class":530}," none;\n",[454,1725,1727,1729,1731,1733,1735,1737],{"class":456,"line":1726},35,[454,1728,825],{"class":520},[454,1730,531],{"class":530},[454,1732,830],{"class":520},[454,1734,531],{"class":530},[454,1736,835],{"class":520},[454,1738,1739],{"class":530},"(none);\n",[454,1741,1743],{"class":456,"line":1742},36,[454,1744,844],{"class":530},[454,1746,1748],{"class":456,"line":1747},37,[454,1749,511],{"emptyLinePlaceholder":30},[454,1751,1753,1756,1759],{"class":456,"line":1752},38,[454,1754,1755],{"class":460},"int",[454,1757,1758],{"class":520}," main",[454,1760,601],{"class":530},[454,1762,1764,1767],{"class":456,"line":1763},39,[454,1765,1766],{"class":520},"    InitLogger",[454,1768,1317],{"class":530},[454,1770,1772],{"class":456,"line":1771},40,[454,1773,511],{"emptyLinePlaceholder":30},[454,1775,1777,1779,1781,1783,1785,1787,1789,1791,1793],{"class":456,"line":1776},41,[454,1778,702],{"class":460},[454,1780,861],{"class":530},[454,1782,619],{"class":460},[454,1784,574],{"class":520},[454,1786,531],{"class":530},[454,1788,830],{"class":520},[454,1790,531],{"class":530},[454,1792,874],{"class":520},[454,1794,877],{"class":530},[454,1796,1798,1801,1803,1805,1807,1809,1811],{"class":456,"line":1797},42,[454,1799,1800],{"class":460},"        ->",[454,1802,885],{"class":520},[454,1804,654],{"class":530},[454,1806,890],{"class":464},[454,1808,893],{"class":530},[454,1810,896],{"class":464},[454,1812,660],{"class":530},[454,1814,1816],{"class":456,"line":1815},43,[454,1817,511],{"emptyLinePlaceholder":30},[454,1819,1821,1823,1825,1827,1829,1831,1833,1835,1838],{"class":456,"line":1820},44,[454,1822,1285],{"class":530},[454,1824,910],{"class":520},[454,1826,654],{"class":530},[454,1828,780],{"class":520},[454,1830,531],{"class":530},[454,1832,921],{"class":520},[454,1834,1003],{"class":530},[454,1836,1837],{"class":464},"\"Application started\"",[454,1839,660],{"class":530},[454,1841,1843],{"class":456,"line":1842},45,[454,1844,511],{"emptyLinePlaceholder":30},[454,1846,1848,1851],{"class":456,"line":1847},46,[454,1849,1850],{"class":520},"    CleanupLogger",[454,1852,1317],{"class":530},[454,1854,1856,1859,1863],{"class":456,"line":1855},47,[454,1857,1858],{"class":460},"    return",[454,1860,1862],{"class":1861},"sYu0t"," 0",[454,1864,542],{"class":530},[454,1866,1868],{"class":456,"line":1867},48,[454,1869,844],{"class":530},[416,1871,1873],{"id":1872},"whats-next","What's next?",[1083,1875,1876,1880,1885,1890],{},[1086,1877,1878],{},[429,1879,5],{"href":70},[1086,1881,1882],{},[429,1883,1884],{"href":80},"OpenTelemetry C++ Tracing API",[1086,1886,1887],{},[429,1888,1889],{"href":84},"OpenTelemetry C++ Metrics API",[1086,1891,1892],{},[429,1893,1894],{"href":92},"OpenTelemetry C++ Resource attributes",[1896,1897,1898],"style",{},"html pre.shiki code .sD7c4, html code.shiki .sD7c4{--shiki-default:#D73A49}html pre.shiki code .sYBdl, html code.shiki .sYBdl{--shiki-default:#032F62}html pre.shiki code .s7eDp, html code.shiki .s7eDp{--shiki-default:#6F42C1}html pre.shiki code .sgsFI, html code.shiki .sgsFI{--shiki-default:#24292E}html .default .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html pre.shiki code .sAwPA, html code.shiki .sAwPA{--shiki-default:#6A737D}html pre.shiki code .sYu0t, html code.shiki .sYu0t{--shiki-default:#005CC5}",{"title":449,"searchDepth":484,"depth":468,"links":1900},[1901,1902,1903,1904,1905,1906,1907,1908],{"id":418,"depth":468,"text":419},{"id":436,"depth":468,"text":35},{"id":442,"depth":468,"text":57},{"id":847,"depth":468,"text":848},{"id":936,"depth":468,"text":937},{"id":1077,"depth":468,"text":1078},{"id":1324,"depth":468,"text":1325},{"id":1872,"depth":468,"text":1873},"Collect C++ application logs with OpenTelemetry and send structured logs to Uptrace.","md",null,{"readingTime":1913},{"text":1914,"minutes":1915,"time":1916,"words":1917},"2 min read",1.52,91200,304,{"title":87},{"title":406,"description":1909},false,"XDUDWB6oFnIGs-tET4p9gKrQRq_EkT9vPIoMEqaqFls",[1923,1925],{"title":83,"path":84,"stem":85,"description":1924,"children":-1},"Collect C++ application metrics with the OpenTelemetry Meter API, configure instruments, and forward data to Uptrace dashboards.",{"title":91,"path":92,"stem":93,"description":1926,"children":-1},"Add resource attributes in C++ to describe service name, environment, and deployment metadata so Uptrace can group telemetry correctly.",{"id":1928,"title":1929,"body":1930,"description":1944,"extension":1910,"meta":1945,"navigation":30,"path":1950,"seo":1951,"stem":1952,"__hash__":1953},"partials\u002Fpartials\u002F_otel-prereq-cpp.md","Otel Prereq Cpp",{"type":408,"value":1931,"toc":1942},[1932],[425,1933,1934,1935,1938,1939,433],{},"Make sure your exporter is configured before you start instrumenting code. Follow ",[429,1936,1937],{"href":70},"Getting started with OpenTelemetry C++"," or set up ",[429,1940,1941],{"href":76},"OTLP Configuration",{"title":449,"searchDepth":484,"depth":468,"links":1943},[],"Make sure your exporter is configured before you start instrumenting code. Follow Getting started with OpenTelemetry C++ or set up OTLP Configuration first.",{"readingTime":1946},{"text":1947,"minutes":1948,"time":1949,"words":768},"1 min read",0.115,6900,"\u002Fpartials\u002F_otel-prereq-cpp",{"description":1944},"partials\u002F_otel-prereq-cpp","V7hyQR-gwWLGOqQfMbPkHsYOH7CBrOeSDzylyiOKZqg",1782042545424]