@@ -148,6 +148,10 @@ defmodule LoggerJSON.Formatters.GoogleCloudTest do
148148 end
149149
150150 test "logs span and trace ids without project_id" do
151+ System . delete_env ( "GCLOUD_PROJECT" )
152+ System . delete_env ( "GOOGLE_PROJECT_ID" )
153+ System . delete_env ( "GOOGLE_CLOUD_PROJECT" )
154+
151155 formatter = GoogleCloud . new ( metadata: :all )
152156 :logger . update_handler_config ( :default , :formatter , formatter )
153157
@@ -611,4 +615,32 @@ defmodule LoggerJSON.Formatters.GoogleCloudTest do
611615 "foo" => "foo"
612616 } = log
613617 end
618+
619+ test "reads project_id from environment_variables" do
620+ for { env_var , project_id } <- [
621+ { "GCLOUD_PROJECT" , "myproj-101" } ,
622+ { "GOOGLE_PROJECT_ID" , "myproj-102" } ,
623+ { "GOOGLE_CLOUD_PROJECT" , "myproj-103" }
624+ ] do
625+ System . put_env ( env_var , project_id )
626+
627+ formatter = GoogleCloud . new ( metadata: :all )
628+ :logger . update_handler_config ( :default , :formatter , formatter )
629+
630+ Logger . metadata (
631+ otel_span_id: ~c" bff20904aa5883a6" ,
632+ otel_trace_flags: ~c" 01" ,
633+ otel_trace_id: ~c" 294740ce41cc9f202dedb563db123532"
634+ )
635+
636+ log_entry =
637+ capture_log ( fn ->
638+ Logger . debug ( "Hello" )
639+ end )
640+ |> decode_or_print_error ( )
641+
642+ assert log_entry [ "logging.googleapis.com/trace" ] ==
643+ "projects/#{ project_id } /traces/294740ce41cc9f202dedb563db123532"
644+ end
645+ end
614646end
0 commit comments