1/* Copyright (c) 2013 The Chromium Authors. All rights reserved. 2 * Use of this source code is governed by a BSD-style license that can be 3 * found in the LICENSE file. */ 4 5#ifndef LIBRARIES_NACL_IO_LOG_H_ 6#define LIBRARIES_NACL_IO_LOG_H_ 7 8#include "sdk_util/macros.h" 9 10#define LOG_PREFIX "nacl_io: " 11 12#if defined(NDEBUG) 13 14#define LOG_TRACE(format, ...) 15#define LOG_ERROR(format, ...) 16#define LOG_WARN(format, ...) 17 18#else 19 20#if NACL_IO_LOGGING 21 22#define LOG_TRACE(format, ...) \ 23 nacl_io_log(LOG_PREFIX format "\n", ##__VA_ARGS__) 24 25#else 26 27#define LOG_TRACE(format, ...) 28 29#endif 30 31#define LOG_ERROR(format, ...) \ 32 nacl_io_log(LOG_PREFIX "%s:%d: error: " format "\n", \ 33 __FILE__, \ 34 __LINE__, \ 35 ##__VA_ARGS__) 36 37#define LOG_WARN(format, ...) \ 38 nacl_io_log(LOG_PREFIX "%s:%d: warning: " format "\n", \ 39 __FILE__, \ 40 __LINE__, \ 41 ##__VA_ARGS__) 42 43#endif 44 45EXTERN_C_BEGIN 46 47/* 48 * Low level logging function for nacl_io log messages. 49 * 50 * This function sends its output directly to the IRT standard out 51 * file descriptor, which by default will apear on the standard out 52 * or chrome or sel_ldr. 53 */ 54void nacl_io_log(const char* format, ...) PRINTF_LIKE(1, 2); 55 56EXTERN_C_END 57 58#endif /* LIBRARIES_NACL_IO_LOG_H_ */ 59