xref: /aosp_15_r20/libnativehelper/ALog-priv.h (revision 0797b24ee566c78eb48500180cb4bf71f81c8aab)
1*0797b24eSAndroid Build Coastguard Worker /*
2*0797b24eSAndroid Build Coastguard Worker  * Copyright 2013 The Android Open Source Project
3*0797b24eSAndroid Build Coastguard Worker  *
4*0797b24eSAndroid Build Coastguard Worker  * Licensed under the Apache License, Version 2.0 (the "License");
5*0797b24eSAndroid Build Coastguard Worker  * you may not use this file except in compliance with the License.
6*0797b24eSAndroid Build Coastguard Worker  * You may obtain a copy of the License at
7*0797b24eSAndroid Build Coastguard Worker  *
8*0797b24eSAndroid Build Coastguard Worker  *      http://www.apache.org/licenses/LICENSE-2.0
9*0797b24eSAndroid Build Coastguard Worker  *
10*0797b24eSAndroid Build Coastguard Worker  * Unless required by applicable law or agreed to in writing, software
11*0797b24eSAndroid Build Coastguard Worker  * distributed under the License is distributed on an "AS IS" BASIS,
12*0797b24eSAndroid Build Coastguard Worker  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13*0797b24eSAndroid Build Coastguard Worker  * See the License for the specific language governing permissions and
14*0797b24eSAndroid Build Coastguard Worker  * limitations under the License.
15*0797b24eSAndroid Build Coastguard Worker  */
16*0797b24eSAndroid Build Coastguard Worker 
17*0797b24eSAndroid Build Coastguard Worker #pragma once
18*0797b24eSAndroid Build Coastguard Worker 
19*0797b24eSAndroid Build Coastguard Worker #include <android/log.h>
20*0797b24eSAndroid Build Coastguard Worker 
21*0797b24eSAndroid Build Coastguard Worker #ifndef LOG_NDEBUG
22*0797b24eSAndroid Build Coastguard Worker #ifdef NDEBUG
23*0797b24eSAndroid Build Coastguard Worker #define LOG_NDEBUG 1
24*0797b24eSAndroid Build Coastguard Worker #else
25*0797b24eSAndroid Build Coastguard Worker #define LOG_NDEBUG 0
26*0797b24eSAndroid Build Coastguard Worker #endif
27*0797b24eSAndroid Build Coastguard Worker #endif
28*0797b24eSAndroid Build Coastguard Worker 
29*0797b24eSAndroid Build Coastguard Worker 
30*0797b24eSAndroid Build Coastguard Worker /*
31*0797b24eSAndroid Build Coastguard Worker  * Basic log message macros intended to emulate the behavior of log/log.h
32*0797b24eSAndroid Build Coastguard Worker  * in system core.  This should be dependent only on ndk exposed logging
33*0797b24eSAndroid Build Coastguard Worker  * functionality.
34*0797b24eSAndroid Build Coastguard Worker  */
35*0797b24eSAndroid Build Coastguard Worker 
36*0797b24eSAndroid Build Coastguard Worker #ifndef ALOG
37*0797b24eSAndroid Build Coastguard Worker #define ALOG(priority, tag, fmt, ...) \
38*0797b24eSAndroid Build Coastguard Worker     __android_log_print(ANDROID_##priority, tag, fmt, __VA_ARGS__)
39*0797b24eSAndroid Build Coastguard Worker #endif
40*0797b24eSAndroid Build Coastguard Worker 
41*0797b24eSAndroid Build Coastguard Worker #ifndef ALOGV
42*0797b24eSAndroid Build Coastguard Worker #if LOG_NDEBUG
43*0797b24eSAndroid Build Coastguard Worker #define ALOGV(...)   ((void)0)
44*0797b24eSAndroid Build Coastguard Worker #else
45*0797b24eSAndroid Build Coastguard Worker #define ALOGV(...) ((void)ALOG(LOG_VERBOSE, LOG_TAG, __VA_ARGS__))
46*0797b24eSAndroid Build Coastguard Worker #endif
47*0797b24eSAndroid Build Coastguard Worker #endif
48*0797b24eSAndroid Build Coastguard Worker 
49*0797b24eSAndroid Build Coastguard Worker #ifndef ALOGD
50*0797b24eSAndroid Build Coastguard Worker #define ALOGD(...) ((void)ALOG(LOG_DEBUG, LOG_TAG, __VA_ARGS__))
51*0797b24eSAndroid Build Coastguard Worker #endif
52*0797b24eSAndroid Build Coastguard Worker 
53*0797b24eSAndroid Build Coastguard Worker #ifndef ALOGI
54*0797b24eSAndroid Build Coastguard Worker #define ALOGI(...) ((void)ALOG(LOG_INFO, LOG_TAG, __VA_ARGS__))
55*0797b24eSAndroid Build Coastguard Worker #endif
56*0797b24eSAndroid Build Coastguard Worker 
57*0797b24eSAndroid Build Coastguard Worker #ifndef ALOGW
58*0797b24eSAndroid Build Coastguard Worker #define ALOGW(...) ((void)ALOG(LOG_WARN, LOG_TAG, __VA_ARGS__))
59*0797b24eSAndroid Build Coastguard Worker #endif
60*0797b24eSAndroid Build Coastguard Worker 
61*0797b24eSAndroid Build Coastguard Worker #ifndef ALOGE
62*0797b24eSAndroid Build Coastguard Worker #define ALOGE(...) ((void)ALOG(LOG_ERROR, LOG_TAG, __VA_ARGS__))
63*0797b24eSAndroid Build Coastguard Worker #endif
64*0797b24eSAndroid Build Coastguard Worker 
65*0797b24eSAndroid Build Coastguard Worker #ifndef ALOGF
66*0797b24eSAndroid Build Coastguard Worker #define ALOGF(...) ((void)ALOG(LOG_FATAL, LOG_TAG, __VA_ARGS__))
67*0797b24eSAndroid Build Coastguard Worker #endif
68*0797b24eSAndroid Build Coastguard Worker 
69*0797b24eSAndroid Build Coastguard Worker /*
70*0797b24eSAndroid Build Coastguard Worker  * Log a fatal error if cond is true. The condition test is inverted from
71*0797b24eSAndroid Build Coastguard Worker  * assert(3) semantics. The test and message are not stripped from release
72*0797b24eSAndroid Build Coastguard Worker  * builds
73*0797b24eSAndroid Build Coastguard Worker  */
74*0797b24eSAndroid Build Coastguard Worker #ifndef ALOG_ALWAYS_FATAL_IF
75*0797b24eSAndroid Build Coastguard Worker #define ALOG_ALWAYS_FATAL_IF(cond, ...) \
76*0797b24eSAndroid Build Coastguard Worker     if (cond) __android_log_assert(#cond, LOG_TAG, __VA_ARGS__)
77*0797b24eSAndroid Build Coastguard Worker #endif
78*0797b24eSAndroid Build Coastguard Worker 
79