18f91282ebe1963b9d27f8779ad1342302b293bd2Dima Zavin/* 28f91282ebe1963b9d27f8779ad1342302b293bd2Dima Zavin * Copyright (C) 2010 The Android Open Source Project 38f91282ebe1963b9d27f8779ad1342302b293bd2Dima Zavin * 48f91282ebe1963b9d27f8779ad1342302b293bd2Dima Zavin * Licensed under the Apache License, Version 2.0 (the "License"); 58f91282ebe1963b9d27f8779ad1342302b293bd2Dima Zavin * you may not use this file except in compliance with the License. 68f91282ebe1963b9d27f8779ad1342302b293bd2Dima Zavin * You may obtain a copy of the License at 78f91282ebe1963b9d27f8779ad1342302b293bd2Dima Zavin * 88f91282ebe1963b9d27f8779ad1342302b293bd2Dima Zavin * http://www.apache.org/licenses/LICENSE-2.0 98f91282ebe1963b9d27f8779ad1342302b293bd2Dima Zavin * 108f91282ebe1963b9d27f8779ad1342302b293bd2Dima Zavin * Unless required by applicable law or agreed to in writing, software 118f91282ebe1963b9d27f8779ad1342302b293bd2Dima Zavin * distributed under the License is distributed on an "AS IS" BASIS, 128f91282ebe1963b9d27f8779ad1342302b293bd2Dima Zavin * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 138f91282ebe1963b9d27f8779ad1342302b293bd2Dima Zavin * See the License for the specific language governing permissions and 148f91282ebe1963b9d27f8779ad1342302b293bd2Dima Zavin * limitations under the License. 158f91282ebe1963b9d27f8779ad1342302b293bd2Dima Zavin */ 168f91282ebe1963b9d27f8779ad1342302b293bd2Dima Zavin 178f91282ebe1963b9d27f8779ad1342302b293bd2Dima Zavin#ifndef _CUTILS_KLOG_H_ 188f91282ebe1963b9d27f8779ad1342302b293bd2Dima Zavin#define _CUTILS_KLOG_H_ 198f91282ebe1963b9d27f8779ad1342302b293bd2Dima Zavin 207425fd1b231fcdb3c260877a13f794a0c7361e80Ken Sumrall#include <sys/cdefs.h> 21da40c00137f75543a69972f1be506e2d14a41845Elliott Hughes#include <sys/uio.h> 22eb3f421e028608e37e4eb814351f03b99ae55900Stephen Smalley#include <stdarg.h> 237425fd1b231fcdb3c260877a13f794a0c7361e80Ken Sumrall 247425fd1b231fcdb3c260877a13f794a0c7361e80Ken Sumrall__BEGIN_DECLS 257425fd1b231fcdb3c260877a13f794a0c7361e80Ken Sumrall 268f91282ebe1963b9d27f8779ad1342302b293bd2Dima Zavinvoid klog_init(void); 27157e1b645ab278d5aaaa09939088b8f8e9d00085Alex Rayint klog_get_level(void); 288f91282ebe1963b9d27f8779ad1342302b293bd2Dima Zavinvoid klog_set_level(int level); 2932b7108b64c209d4397575498b63dd42aae13926Dmitry Shmidt/* TODO: void klog_close(void); - and make klog_fd users thread safe. */ 30da40c00137f75543a69972f1be506e2d14a41845Elliott Hughes 318f91282ebe1963b9d27f8779ad1342302b293bd2Dima Zavinvoid klog_write(int level, const char *fmt, ...) 328f91282ebe1963b9d27f8779ad1342302b293bd2Dima Zavin __attribute__ ((format(printf, 2, 3))); 33da40c00137f75543a69972f1be506e2d14a41845Elliott Hughesvoid klog_writev(int level, const struct iovec* iov, int iov_count); 348f91282ebe1963b9d27f8779ad1342302b293bd2Dima Zavin 357425fd1b231fcdb3c260877a13f794a0c7361e80Ken Sumrall__END_DECLS 367425fd1b231fcdb3c260877a13f794a0c7361e80Ken Sumrall 37eb3f421e028608e37e4eb814351f03b99ae55900Stephen Smalley#define KLOG_ERROR_LEVEL 3 38eb3f421e028608e37e4eb814351f03b99ae55900Stephen Smalley#define KLOG_WARNING_LEVEL 4 39eb3f421e028608e37e4eb814351f03b99ae55900Stephen Smalley#define KLOG_NOTICE_LEVEL 5 40eb3f421e028608e37e4eb814351f03b99ae55900Stephen Smalley#define KLOG_INFO_LEVEL 6 41eb3f421e028608e37e4eb814351f03b99ae55900Stephen Smalley#define KLOG_DEBUG_LEVEL 7 42eb3f421e028608e37e4eb814351f03b99ae55900Stephen Smalley 43eb3f421e028608e37e4eb814351f03b99ae55900Stephen Smalley#define KLOG_ERROR(tag,x...) klog_write(KLOG_ERROR_LEVEL, "<3>" tag ": " x) 44eb3f421e028608e37e4eb814351f03b99ae55900Stephen Smalley#define KLOG_WARNING(tag,x...) klog_write(KLOG_WARNING_LEVEL, "<4>" tag ": " x) 45eb3f421e028608e37e4eb814351f03b99ae55900Stephen Smalley#define KLOG_NOTICE(tag,x...) klog_write(KLOG_NOTICE_LEVEL, "<5>" tag ": " x) 46eb3f421e028608e37e4eb814351f03b99ae55900Stephen Smalley#define KLOG_INFO(tag,x...) klog_write(KLOG_INFO_LEVEL, "<6>" tag ": " x) 47eb3f421e028608e37e4eb814351f03b99ae55900Stephen Smalley#define KLOG_DEBUG(tag,x...) klog_write(KLOG_DEBUG_LEVEL, "<7>" tag ": " x) 488f91282ebe1963b9d27f8779ad1342302b293bd2Dima Zavin 498f91282ebe1963b9d27f8779ad1342302b293bd2Dima Zavin#define KLOG_DEFAULT_LEVEL 3 /* messages <= this level are logged */ 508f91282ebe1963b9d27f8779ad1342302b293bd2Dima Zavin 518f91282ebe1963b9d27f8779ad1342302b293bd2Dima Zavin#endif 52