From e270848fb0fe74e60e7ce84df2b17b0a3d31cc98 Mon Sep 17 00:00:00 2001 From: hkavya26 Date: Tue, 9 Nov 2021 11:51:48 +0530 Subject: [PATCH] Fix: User Agent and trace logger --- api/account/accountv1/api_service.go | 2 +- api/account/accountv2/api_service.go | 2 +- api/certificatemanager/api_service.go | 2 +- api/cis/cisv1/api_service.go | 2 +- api/container/containerv1/api_service.go | 2 +- api/container/containerv2/api_service.go | 2 +- api/container/registryv1/api_service.go | 2 +- api/cse/csev2/api_service.go | 2 +- api/functions/api_service.go | 4 +-- .../globalsearchv2/api_service.go | 2 +- .../globaltaggingv3/api_service.go | 2 +- api/hpcs/api_service.go | 2 +- api/iam/iamv1/api_service.go | 2 +- api/iampap/iampapv1/api_service.go | 2 +- api/iampap/iampapv2/api_service.go | 2 +- api/iamuum/iamuumv1/api_service.go | 2 +- api/iamuum/iamuumv2/api_service.go | 2 +- api/icd/icdv4/api_service.go | 2 +- api/mccp/mccpv2/api_service.go | 2 +- .../resourcev1/catalog/api_service.go | 2 +- .../resourcev1/controller/api_service.go | 2 +- .../resourcev1/management/api_service.go | 2 +- .../resourcev2/controllerv2/api_service.go | 2 +- .../resourcev2/managementv2/api_service.go | 2 +- api/satellite/satellitev1/api_service.go | 2 +- api/schematics/api_service.go | 2 +- .../usermanagementv2/api_service.go | 2 +- client/client.go | 26 ++++++++++--------- config.go | 1 + session/session.go | 5 +++- trace/trace.go | 5 +++- 31 files changed, 51 insertions(+), 42 deletions(-) diff --git a/api/account/accountv1/api_service.go b/api/account/accountv1/api_service.go index a1eaa7d0..71cc4108 100644 --- a/api/account/accountv1/api_service.go +++ b/api/account/accountv1/api_service.go @@ -36,7 +36,7 @@ func New(sess *session.Session) (AccountServiceAPI, error) { } tokenRefreher, err := authentication.NewIAMAuthRepository(config, &rest.Client{ DefaultHeader: gohttp.Header{ - "User-Agent": []string{http.UserAgent()}, + "X-Original-User-Agent": []string{config.UserAgent}, }, HTTPClient: config.HTTPClient, }) diff --git a/api/account/accountv2/api_service.go b/api/account/accountv2/api_service.go index 200a2842..cc407ec4 100644 --- a/api/account/accountv2/api_service.go +++ b/api/account/accountv2/api_service.go @@ -36,7 +36,7 @@ func New(sess *session.Session) (AccountServiceAPI, error) { } tokenRefreher, err := authentication.NewUAARepository(config, &rest.Client{ DefaultHeader: gohttp.Header{ - "User-Agent": []string{http.UserAgent()}, + "X-Original-User-Agent": []string{config.UserAgent}, }, HTTPClient: config.HTTPClient, }) diff --git a/api/certificatemanager/api_service.go b/api/certificatemanager/api_service.go index 53f0507d..54732633 100644 --- a/api/certificatemanager/api_service.go +++ b/api/certificatemanager/api_service.go @@ -36,7 +36,7 @@ func New(sess *session.Session) (CertificateManagerServiceAPI, error) { } tokenRefreher, err := authentication.NewIAMAuthRepository(config, &rest.Client{ DefaultHeader: gohttp.Header{ - "User-Agent": []string{http.UserAgent()}, + "X-Original-User-Agent": []string{config.UserAgent}, }, HTTPClient: config.HTTPClient, }) diff --git a/api/cis/cisv1/api_service.go b/api/cis/cisv1/api_service.go index 87512182..f0ec7e6f 100644 --- a/api/cis/cisv1/api_service.go +++ b/api/cis/cisv1/api_service.go @@ -45,7 +45,7 @@ func New(sess *session.Session) (CisServiceAPI, error) { } tokenRefreher, err := authentication.NewIAMAuthRepository(config, &rest.Client{ DefaultHeader: gohttp.Header{ - "User-Agent": []string{http.UserAgent()}, + "X-Original-User-Agent": []string{config.UserAgent}, }, HTTPClient: config.HTTPClient, }) diff --git a/api/container/containerv1/api_service.go b/api/container/containerv1/api_service.go index 5b457c46..825b9a32 100644 --- a/api/container/containerv1/api_service.go +++ b/api/container/containerv1/api_service.go @@ -46,7 +46,7 @@ func New(sess *session.Session) (ContainerServiceAPI, error) { } tokenRefreher, err := authentication.NewIAMAuthRepository(config, &rest.Client{ DefaultHeader: gohttp.Header{ - "User-Agent": []string{http.UserAgent()}, + "X-Original-User-Agent": []string{config.UserAgent}, }, HTTPClient: config.HTTPClient, }) diff --git a/api/container/containerv2/api_service.go b/api/container/containerv2/api_service.go index 44603478..1b0aca90 100755 --- a/api/container/containerv2/api_service.go +++ b/api/container/containerv2/api_service.go @@ -49,7 +49,7 @@ func New(sess *session.Session) (ContainerServiceAPI, error) { } tokenRefreher, err := authentication.NewIAMAuthRepository(config, &rest.Client{ DefaultHeader: gohttp.Header{ - "User-Agent": []string{http.UserAgent()}, + "X-Original-User-Agent": []string{config.UserAgent}, }, HTTPClient: config.HTTPClient, }) diff --git a/api/container/registryv1/api_service.go b/api/container/registryv1/api_service.go index de029a81..b52ad469 100644 --- a/api/container/registryv1/api_service.go +++ b/api/container/registryv1/api_service.go @@ -58,7 +58,7 @@ func New(sess *session.Session) (RegistryServiceAPI, error) { } tokenRefreher, err := authentication.NewIAMAuthRepository(config, &rest.Client{ DefaultHeader: gohttp.Header{ - "User-Agent": []string{http.UserAgent()}, + "X-Original-User-Agent": []string{config.UserAgent}, }, HTTPClient: config.HTTPClient, }) diff --git a/api/cse/csev2/api_service.go b/api/cse/csev2/api_service.go index 41b158bf..a46e191c 100644 --- a/api/cse/csev2/api_service.go +++ b/api/cse/csev2/api_service.go @@ -32,7 +32,7 @@ func New(sess *session.Session) (CseServiceAPI, error) { } tokenRefreher, err := authentication.NewIAMAuthRepository(config, &rest.Client{ DefaultHeader: gohttp.Header{ - "User-Agent": []string{http.UserAgent()}, + "X-Original-User-Agent": []string{config.UserAgent}, }, HTTPClient: config.HTTPClient, }) diff --git a/api/functions/api_service.go b/api/functions/api_service.go index 8f879daa..40bd36ac 100644 --- a/api/functions/api_service.go +++ b/api/functions/api_service.go @@ -36,7 +36,7 @@ func New(sess *session.Session) (FunctionServiceAPI, error) { } tokenRefreher, err := authentication.NewIAMAuthRepository(config, &rest.Client{ DefaultHeader: gohttp.Header{ - "User-Agent": []string{http.UserAgent()}, + "X-Original-User-Agent": []string{config.UserAgent}, }, HTTPClient: config.HTTPClient, }) @@ -75,7 +75,7 @@ func NewCF(sess *session.Session) (FunctionServiceAPI, error) { } tokenRefreher, err := authentication.NewUAARepository(config, &rest.Client{ DefaultHeader: gohttp.Header{ - "User-Agent": []string{http.UserAgent()}, + "X-Original-User-Agent": []string{config.UserAgent}, }, HTTPClient: config.HTTPClient, }) diff --git a/api/globalsearch/globalsearchv2/api_service.go b/api/globalsearch/globalsearchv2/api_service.go index ed3b4248..376fcad9 100644 --- a/api/globalsearch/globalsearchv2/api_service.go +++ b/api/globalsearch/globalsearchv2/api_service.go @@ -36,7 +36,7 @@ func New(sess *session.Session) (GlobalSearchServiceAPI, error) { } tokenRefreher, err := authentication.NewIAMAuthRepository(config, &rest.Client{ DefaultHeader: gohttp.Header{ - "User-Agent": []string{http.UserAgent()}, + "X-Original-User-Agent": []string{config.UserAgent}, }, HTTPClient: config.HTTPClient, }) diff --git a/api/globaltagging/globaltaggingv3/api_service.go b/api/globaltagging/globaltaggingv3/api_service.go index e2dc3470..27d91176 100644 --- a/api/globaltagging/globaltaggingv3/api_service.go +++ b/api/globaltagging/globaltaggingv3/api_service.go @@ -36,7 +36,7 @@ func New(sess *session.Session) (GlobalTaggingServiceAPI, error) { } tokenRefreher, err := authentication.NewIAMAuthRepository(config, &rest.Client{ DefaultHeader: gohttp.Header{ - "User-Agent": []string{http.UserAgent()}, + "X-Original-User-Agent": []string{config.UserAgent}, }, HTTPClient: config.HTTPClient, }) diff --git a/api/hpcs/api_service.go b/api/hpcs/api_service.go index 37bb0c26..d837724f 100644 --- a/api/hpcs/api_service.go +++ b/api/hpcs/api_service.go @@ -36,7 +36,7 @@ func New(sess *session.Session) (HPCSV2, error) { } tokenRefreher, err := authentication.NewIAMAuthRepository(config, &rest.Client{ DefaultHeader: gohttp.Header{ - "User-Agent": []string{http.UserAgent()}, + "X-Original-User-Agent": []string{config.UserAgent}, }, HTTPClient: config.HTTPClient, }) diff --git a/api/iam/iamv1/api_service.go b/api/iam/iamv1/api_service.go index 0953f831..1ca5f6e3 100644 --- a/api/iam/iamv1/api_service.go +++ b/api/iam/iamv1/api_service.go @@ -41,7 +41,7 @@ func New(sess *session.Session) (IAMServiceAPI, error) { } tokenRefreher, err := authentication.NewIAMAuthRepository(config, &rest.Client{ DefaultHeader: gohttp.Header{ - "User-Agent": []string{http.UserAgent()}, + "X-Original-User-Agent": []string{config.UserAgent}, }, HTTPClient: config.HTTPClient, }) diff --git a/api/iampap/iampapv1/api_service.go b/api/iampap/iampapv1/api_service.go index 106ce5df..13371254 100644 --- a/api/iampap/iampapv1/api_service.go +++ b/api/iampap/iampapv1/api_service.go @@ -39,7 +39,7 @@ func New(sess *session.Session) (IAMPAPAPI, error) { } tokenRefreher, err := authentication.NewIAMAuthRepository(config, &rest.Client{ DefaultHeader: gohttp.Header{ - "User-Agent": []string{http.UserAgent()}, + "X-Original-User-Agent": []string{config.UserAgent}, }, HTTPClient: config.HTTPClient, }) diff --git a/api/iampap/iampapv2/api_service.go b/api/iampap/iampapv2/api_service.go index 383a826a..1f82e2d9 100644 --- a/api/iampap/iampapv2/api_service.go +++ b/api/iampap/iampapv2/api_service.go @@ -36,7 +36,7 @@ func New(sess *session.Session) (IAMPAPAPIV2, error) { } tokenRefreher, err := authentication.NewIAMAuthRepository(config, &rest.Client{ DefaultHeader: gohttp.Header{ - "User-Agent": []string{http.UserAgent()}, + "X-Original-User-Agent": []string{config.UserAgent}, }, HTTPClient: config.HTTPClient, }) diff --git a/api/iamuum/iamuumv1/api_service.go b/api/iamuum/iamuumv1/api_service.go index e81956a9..d051a0f1 100644 --- a/api/iamuum/iamuumv1/api_service.go +++ b/api/iamuum/iamuumv1/api_service.go @@ -37,7 +37,7 @@ func New(sess *session.Session) (IAMUUMServiceAPI, error) { } tokenRefreher, err := authentication.NewIAMAuthRepository(config, &rest.Client{ DefaultHeader: gohttp.Header{ - "User-Agent": []string{http.UserAgent()}, + "X-Original-User-Agent": []string{config.UserAgent}, }, HTTPClient: config.HTTPClient, }) diff --git a/api/iamuum/iamuumv2/api_service.go b/api/iamuum/iamuumv2/api_service.go index 8fb37972..f8999679 100644 --- a/api/iamuum/iamuumv2/api_service.go +++ b/api/iamuum/iamuumv2/api_service.go @@ -38,7 +38,7 @@ func New(sess *session.Session) (IAMUUMServiceAPIv2, error) { } tokenRefreher, err := authentication.NewIAMAuthRepository(config, &rest.Client{ DefaultHeader: gohttp.Header{ - "User-Agent": []string{http.UserAgent()}, + "X-Original-User-Agent": []string{config.UserAgent}, }, HTTPClient: config.HTTPClient, }) diff --git a/api/icd/icdv4/api_service.go b/api/icd/icdv4/api_service.go index b3d992ab..bf882fd9 100644 --- a/api/icd/icdv4/api_service.go +++ b/api/icd/icdv4/api_service.go @@ -42,7 +42,7 @@ func New(sess *session.Session) (ICDServiceAPI, error) { } tokenRefreher, err := authentication.NewIAMAuthRepository(config, &rest.Client{ DefaultHeader: gohttp.Header{ - "User-Agent": []string{http.UserAgent()}, + "X-Original-User-Agent": []string{config.UserAgent}, }, HTTPClient: config.HTTPClient, }) diff --git a/api/mccp/mccpv2/api_service.go b/api/mccp/mccpv2/api_service.go index c4944ea1..932012ea 100644 --- a/api/mccp/mccpv2/api_service.go +++ b/api/mccp/mccpv2/api_service.go @@ -49,7 +49,7 @@ func New(sess *session.Session) (MccpServiceAPI, error) { } tokenRefreher, err := authentication.NewUAARepository(config, &rest.Client{ DefaultHeader: gohttp.Header{ - "User-Agent": []string{http.UserAgent()}, + "X-Original-User-Agent": []string{config.UserAgent}, }, HTTPClient: config.HTTPClient, }) diff --git a/api/resource/resourcev1/catalog/api_service.go b/api/resource/resourcev1/catalog/api_service.go index 83f3bfe3..b28847b4 100644 --- a/api/resource/resourcev1/catalog/api_service.go +++ b/api/resource/resourcev1/catalog/api_service.go @@ -36,7 +36,7 @@ func New(sess *session.Session) (ResourceCatalogAPI, error) { } tokenRefreher, err := authentication.NewIAMAuthRepository(config, &rest.Client{ DefaultHeader: gohttp.Header{ - "User-Agent": []string{http.UserAgent()}, + "X-Original-User-Agent": []string{config.UserAgent}, }, HTTPClient: config.HTTPClient, }) diff --git a/api/resource/resourcev1/controller/api_service.go b/api/resource/resourcev1/controller/api_service.go index fd66d175..e065a7c1 100644 --- a/api/resource/resourcev1/controller/api_service.go +++ b/api/resource/resourcev1/controller/api_service.go @@ -38,7 +38,7 @@ func New(sess *session.Session) (ResourceControllerAPI, error) { } tokenRefreher, err := authentication.NewIAMAuthRepository(config, &rest.Client{ DefaultHeader: gohttp.Header{ - "User-Agent": []string{http.UserAgent()}, + "X-Original-User-Agent": []string{config.UserAgent}, }, HTTPClient: config.HTTPClient, }) diff --git a/api/resource/resourcev1/management/api_service.go b/api/resource/resourcev1/management/api_service.go index b653444a..d1759fdb 100644 --- a/api/resource/resourcev1/management/api_service.go +++ b/api/resource/resourcev1/management/api_service.go @@ -37,7 +37,7 @@ func New(sess *session.Session) (ResourceManagementAPI, error) { } tokenRefreher, err := authentication.NewIAMAuthRepository(config, &rest.Client{ DefaultHeader: gohttp.Header{ - "User-Agent": []string{http.UserAgent()}, + "X-Original-User-Agent": []string{config.UserAgent}, }, HTTPClient: config.HTTPClient, }) diff --git a/api/resource/resourcev2/controllerv2/api_service.go b/api/resource/resourcev2/controllerv2/api_service.go index 6f7248a1..5f000fde 100644 --- a/api/resource/resourcev2/controllerv2/api_service.go +++ b/api/resource/resourcev2/controllerv2/api_service.go @@ -36,7 +36,7 @@ func New(sess *session.Session) (ResourceControllerAPIV2, error) { } tokenRefreher, err := authentication.NewIAMAuthRepository(config, &rest.Client{ DefaultHeader: gohttp.Header{ - "User-Agent": []string{http.UserAgent()}, + "X-Original-User-Agent": []string{config.UserAgent}, }, HTTPClient: config.HTTPClient, }) diff --git a/api/resource/resourcev2/managementv2/api_service.go b/api/resource/resourcev2/managementv2/api_service.go index a9abcb55..38b6c284 100644 --- a/api/resource/resourcev2/managementv2/api_service.go +++ b/api/resource/resourcev2/managementv2/api_service.go @@ -37,7 +37,7 @@ func New(sess *session.Session) (ResourceManagementAPIv2, error) { } tokenRefreher, err := authentication.NewIAMAuthRepository(config, &rest.Client{ DefaultHeader: gohttp.Header{ - "User-Agent": []string{http.UserAgent()}, + "X-Original-User-Agent": []string{config.UserAgent}, }, HTTPClient: config.HTTPClient, }) diff --git a/api/satellite/satellitev1/api_service.go b/api/satellite/satellitev1/api_service.go index 5bbc0237..fbebd5ab 100644 --- a/api/satellite/satellitev1/api_service.go +++ b/api/satellite/satellitev1/api_service.go @@ -36,7 +36,7 @@ func New(sess *session.Session) (SatelliteServiceAPI, error) { } tokenRefreher, err := authentication.NewIAMAuthRepository(config, &rest.Client{ DefaultHeader: gohttp.Header{ - "User-Agent": []string{http.UserAgent()}, + "X-Original-User-Agent": []string{config.UserAgent}, }, HTTPClient: config.HTTPClient, }) diff --git a/api/schematics/api_service.go b/api/schematics/api_service.go index 3e08ea41..f5a2f913 100644 --- a/api/schematics/api_service.go +++ b/api/schematics/api_service.go @@ -38,7 +38,7 @@ func New(sess *session.Session) (SchematicsServiceAPI, error) { } tokenRefreher, err := authentication.NewIAMAuthRepository(config, &rest.Client{ DefaultHeader: gohttp.Header{ - "User-Agent": []string{http.UserAgent()}, + "X-Original-User-Agent": []string{config.UserAgent}, }, HTTPClient: config.HTTPClient, }) diff --git a/api/usermanagement/usermanagementv2/api_service.go b/api/usermanagement/usermanagementv2/api_service.go index 92a5244b..515758d3 100644 --- a/api/usermanagement/usermanagementv2/api_service.go +++ b/api/usermanagement/usermanagementv2/api_service.go @@ -36,7 +36,7 @@ func New(sess *session.Session) (UserManagementAPI, error) { } tokenRefreher, err := authentication.NewIAMAuthRepository(config, &rest.Client{ DefaultHeader: gohttp.Header{ - "User-Agent": []string{http.UserAgent()}, + "X-Original-User-Agent": []string{config.UserAgent}, }, HTTPClient: config.HTTPClient, }) diff --git a/client/client.go b/client/client.go index a68ab786..fe5dcc12 100755 --- a/client/client.go +++ b/client/client.go @@ -14,7 +14,6 @@ import ( bluemix "github.com/IBM-Cloud/bluemix-go" "github.com/IBM-Cloud/bluemix-go/bmxerror" - "github.com/IBM-Cloud/bluemix-go/http" "github.com/IBM-Cloud/bluemix-go/rest" ) @@ -296,7 +295,7 @@ func cleanPath(p string) string { } const ( - userAgentHeader = "User-Agent" + userAgentHeader = "X-Original-User-Agent" authorizationHeader = "Authorization" uaaAccessTokenHeader = "X-Auth-Uaa-Token" userAccessTokenHeader = "X-Auth-User-Token" @@ -308,46 +307,49 @@ func getDefaultAuthHeaders(serviceName bluemix.ServiceName, c *bluemix.Config) g h := gohttp.Header{} switch serviceName { case bluemix.MccpService, bluemix.AccountService: - h.Set(userAgentHeader, http.UserAgent()) + h.Set(userAgentHeader, c.UserAgent) h.Set(authorizationHeader, c.UAAAccessToken) case bluemix.ContainerService: - h.Set(userAgentHeader, http.UserAgent()) + h.Set(userAgentHeader, c.UserAgent) h.Set(authorizationHeader, c.IAMAccessToken) h.Set(iamRefreshTokenHeader, c.IAMRefreshToken) h.Set(uaaAccessTokenHeader, c.UAAAccessToken) case bluemix.VpcContainerService: - h.Set(userAgentHeader, http.UserAgent()) + h.Set(userAgentHeader, c.UserAgent) h.Set(authorizationHeader, c.IAMAccessToken) h.Set(iamRefreshTokenHeader, c.IAMRefreshToken) case bluemix.SchematicsService: - h.Set(userAgentHeader, http.UserAgent()) + h.Set(userAgentHeader, c.UserAgent) h.Set(authorizationHeader, c.IAMAccessToken) h.Set(iamRefreshTokenHeader, c.IAMRefreshToken) case bluemix.ContainerRegistryService: + h.Set(userAgentHeader, c.UserAgent) h.Set(authorizationHeader, c.IAMAccessToken) h.Set(crRefreshTokenHeader, c.IAMRefreshToken) case bluemix.IAMPAPService, bluemix.AccountServicev1, bluemix.ResourceCatalogrService, bluemix.ResourceControllerService, bluemix.ResourceControllerServicev2, bluemix.ResourceManagementService, bluemix.ResourceManagementServicev2, bluemix.IAMService, bluemix.IAMUUMService, bluemix.IAMUUMServicev2, bluemix.IAMPAPServicev2, bluemix.CseService: h.Set(authorizationHeader, c.IAMAccessToken) + h.Set(userAgentHeader, c.UserAgent) case bluemix.UserManagement: - h.Set(userAgentHeader, http.UserAgent()) + h.Set(userAgentHeader, c.UserAgent) h.Set(authorizationHeader, c.IAMAccessToken) case bluemix.CisService: - h.Set(userAgentHeader, http.UserAgent()) + h.Set(userAgentHeader, c.UserAgent) h.Set(userAccessTokenHeader, c.IAMAccessToken) case bluemix.GlobalSearchService, bluemix.GlobalTaggingService: - h.Set(userAgentHeader, http.UserAgent()) + h.Set(userAgentHeader, c.UserAgent) h.Set(authorizationHeader, c.IAMAccessToken) h.Set(iamRefreshTokenHeader, c.IAMRefreshToken) case bluemix.ICDService: - h.Set(userAgentHeader, http.UserAgent()) + h.Set(userAgentHeader, c.UserAgent) h.Set(authorizationHeader, c.IAMAccessToken) case bluemix.CertificateManager: - h.Set(userAgentHeader, http.UserAgent()) + h.Set(userAgentHeader, c.UserAgent) h.Set(authorizationHeader, c.IAMAccessToken) case bluemix.HPCService: + h.Set(userAgentHeader, c.UserAgent) h.Set(authorizationHeader, c.IAMAccessToken) case bluemix.FunctionsService: - h.Set(userAgentHeader, http.UserAgent()) + h.Set(userAgentHeader, c.UserAgent) h.Set(authorizationHeader, c.IAMAccessToken) default: diff --git a/config.go b/config.go index 915b20cc..21e0a710 100755 --- a/config.go +++ b/config.go @@ -102,6 +102,7 @@ type Config struct { SSLDisable bool Visibility string EndpointsFile string + UserAgent string } //Copy allows the configuration to be overriden or added diff --git a/session/session.go b/session/session.go index 32da338f..544e8be8 100644 --- a/session/session.go +++ b/session/session.go @@ -8,6 +8,7 @@ import ( bluemix "github.com/IBM-Cloud/bluemix-go" "github.com/IBM-Cloud/bluemix-go/endpoints" "github.com/IBM-Cloud/bluemix-go/helpers" + "github.com/IBM-Cloud/bluemix-go/http" "github.com/IBM-Cloud/bluemix-go/trace" ) @@ -93,7 +94,9 @@ func New(configs ...*bluemix.Config) (*Session, error) { if c.Debug { trace.Logger = trace.NewLogger("true") } - + if c.UserAgent == "" { + c.UserAgent = http.UserAgent() + } return sess, nil } diff --git a/trace/trace.go b/trace/trace.go index 87c08987..fc697c71 100644 --- a/trace/trace.go +++ b/trace/trace.go @@ -72,7 +72,10 @@ func NewLogger(bluemix_trace string) Printer { // NewStdLogger return a printer that writes to StdOut. func NewStdLogger() PrinterCloser { - return newLoggerImpl(os.Stderr, "", 0) + if os.Getenv("IBMCLOUD_BLUEMIX_GO_TRACE") != "" { + return newLoggerImpl(os.Stdout, "", 0) + } + return newLoggerImpl(os.Stdin, "", 0) } // NewFileLogger return a printer that writes to the given file path.