Skip to content

[Bug]: Make absl::InitializeLog safe to be called multiple times #1656

Open
@janpfeifer

Description

@janpfeifer

Describe the issue

I don't really use absl::log, but a library I depend on uses it. It logs a bunch of "garbage" (unrelated to my project) that appears on the stderr. It includes the message:

WARNING: All log messages before absl::InitializeLog() is called are written to STDERR

Now I'm adding an earlier call in my program to absl::InitializeLog() in an attempt to eliminate the noise. But I noticed the library I use also eventually calls absl::InitializeLog().

Checking the documentation of absl::InitializeLog it's an error to call it more than once.

More generically, a project and one or more of its dependencies may need to call absl::InitializeLog, and there is no way to coordinate this across completely independent libraries -- ideally, libraries should never call it but ... it happens -- see Google's XLA as an example.

Hence my bug/feature request to make InitializeLog safe to be called multiple times -- a no-op if it has already been called.

ps.: I'm no expert on absl library, it's very likely there is nuance I'm missing.

Steps to reproduce the problem

Use two libraries where both call absl::InitializeLog()

What version of Abseil are you using?

Head.

What operating system and version are you using?

Ubuntu, various versions.

What compiler and version are you using?

clang

What build system are you using?

bazel

Additional context

No response

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions