1/* 2 * Copyright (c) 2013 Apple Inc. All rights reserved. 3 * 4 * @APPLE_LICENSE_HEADER_START@ 5 * 6 * This file contains Original Code and/or Modifications of Original Code 7 * as defined in and that are subject to the Apple Public Source License 8 * Version 2.0 (the 'License'). You may not use this file except in 9 * compliance with the License. Please obtain a copy of the License at 10 * http://www.opensource.apple.com/apsl/ and read it before using this 11 * file. 12 * 13 * The Original Code and all software distributed under the License are 14 * distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER 15 * EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES, 16 * INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY, 17 * FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT. 18 * Please see the License for the specific language governing rights and 19 * limitations under the License. 20 * 21 * @APPLE_LICENSE_HEADER_END@ 22 */ 23 24/* 25 * IPConfigurationLog.h 26 * - logging related functions 27 */ 28 29#ifndef _S_IPCONFIGURATIONLOG_H 30#define _S_IPCONFIGURATIONLOG_H 31 32/* 33 * Modification History 34 * 35 * March 25, 2013 Dieter Siegmund (dieter@apple.com) 36 * - created 37 */ 38 39#include <stdio.h> 40#include <unistd.h> 41#include <syslog.h> 42#include <CoreFoundation/CFString.h> 43#include <stdbool.h> 44#include <string.h> 45#include "symbol_scope.h" 46 47void 48IPConfigurationLogSetVerbose(bool verbose); 49 50void 51IPConfigurationLog(int level, CFStringRef format, ...); 52 53INLINE const char * 54IPConfigurationLogFileName(const char * file) 55{ 56 const char * ret; 57 58 ret = strrchr(file, '/'); 59 if (ret != NULL) { 60 ret++; 61 } 62 else { 63 ret = file; 64 } 65 return (ret); 66} 67 68#define IPConfigLog(__level, __format, ...) \ 69 IPConfigurationLog(__level, CFSTR(__format), \ 70 ## __VA_ARGS__) 71 72#define IPConfigLogFL(__level, __format, ...) \ 73 IPConfigurationLog(__level, \ 74 CFSTR("[%s:%d] %s(): " __format), \ 75 IPConfigurationLogFileName(__FILE__), \ 76 __LINE__, __FUNCTION__, \ 77 ## __VA_ARGS__) 78 79#endif /* _S_IPCONFIGURATIONLOG_H */ 80