Minimize platform/api/logging.h, consolidate macros/impl elsewhere.

Reduces the logging API that must be implemented by embedders to three
simple functions: IsLoggingOn(), LogWithLevel(), and Break(). Added
documentation for these functions.

All logging convenience macros that OpenScreen code uses have been moved
to platform/api/internal/logging_macros.h, and are being #included from
platform/api/logging.h. This is to make it easier for embedder
developers to identify what is being required from them.

All standalone impl for logging has been consolidated into
platform/impl/logging.h (declaration of init routines) and
logging_posix.cc (POSIX implementation, writing to stderr or a FIFO).

Bug: openscreen:77
Change-Id: Id14a380569373a443a81b7bb5139b4648643495e
Reviewed-on: https://chromium-review.googlesource.com/c/openscreen/+/1900333
Reviewed-by: Yuri Wiitala <miu@chromium.org>
Reviewed-by: mark a. foltz <mfoltz@chromium.org>
Commit-Queue: Yuri Wiitala <miu@chromium.org>
diff --git a/platform/impl/logging.h b/platform/impl/logging.h
new file mode 100644
index 0000000..56e3b91
--- /dev/null
+++ b/platform/impl/logging.h
@@ -0,0 +1,26 @@
+// Copyright 2019 The Chromium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+#ifndef PLATFORM_IMPL_LOGGING_H_
+#define PLATFORM_IMPL_LOGGING_H_
+
+#include "platform/api/logging.h"
+
+namespace openscreen {
+namespace platform {
+
+// Direct all logging output to a named FIFO having the given |filename|. If the
+// file does not exist, an attempt is made to auto-create it. If unsuccessful,
+// abort the program. If this is never called, logging continues to output to
+// the default destination (stderr).
+void SetLogFifoOrDie(const char* filename);
+
+// Set the global logging level. If this is never called, kWarning is the
+// default.
+void SetLogLevel(LogLevel level);
+
+}  // namespace platform
+}  // namespace openscreen
+
+#endif  // PLATFORM_IMPL_LOGGING_H_