2 * Copyright (C) 2006 The Android Open Source Project
4 * Licensed under the Apache License, Version 2.0 (the "License");
5 * you may not use this file except in compliance with the License.
6 * You may obtain a copy of the License at
8 * http://www.apache.org/licenses/LICENSE-2.0
10 * Unless required by applicable law or agreed to in writing, software
11 * distributed under the License is distributed on an "AS IS" BASIS,
12 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 * See the License for the specific language governing permissions and
14 * limitations under the License.
20 #include <cutils/log.h>
21 #include <cutils/logger.h>
22 #include <cutils/event_tag_map.h>
39 } AndroidLogPrintFormat
;
44 } AndroidLogColoredOutput
;
46 typedef struct AndroidLogFormat_t AndroidLogFormat
;
48 typedef struct AndroidLogEntry_t
{
51 android_LogPriority priority
;
59 AndroidLogFormat
*android_log_format_new();
61 void android_log_format_free(AndroidLogFormat
*p_format
);
63 void android_log_setPrintFormat(AndroidLogFormat
*p_format
,
64 AndroidLogPrintFormat format
);
66 void android_log_setColoredOutput(AndroidLogFormat
*p_format
);
69 * Returns FORMAT_OFF on invalid string
71 AndroidLogPrintFormat
android_log_formatFromString(const char *s
);
74 * filterExpression: a single filter expression
77 * returns 0 on success and -1 on invalid expression
79 * Assumes single threaded execution
83 int android_log_addFilterRule(AndroidLogFormat
*p_format
,
84 const char *filterExpression
);
88 * filterString: a whitespace-separated set of filter expressions
91 * returns 0 on success and -1 on invalid expression
93 * Assumes single threaded execution
97 int android_log_addFilterString(AndroidLogFormat
*p_format
,
98 const char *filterString
);
102 * returns 1 if this log line should be printed based on its priority
103 * and tag, and 0 if it should not
105 int android_log_shouldPrintLine (
106 AndroidLogFormat
*p_format
, const char *tag
, android_LogPriority pri
);
110 * Splits a wire-format buffer into an AndroidLogEntry
111 * entry allocated by caller. Pointers will point directly into buf
113 * Returns 0 on success and -1 on invalid wire format (entry will be
114 * in unspecified state)
116 int android_log_processLogBuffer(struct logger_entry
*buf
,
117 AndroidLogEntry
*entry
);
120 * Like android_log_processLogBuffer, but for binary logs.
122 * If "map" is non-NULL, it will be used to convert the log tag number
125 int android_log_processBinaryLogBuffer(struct logger_entry
*buf
,
126 AndroidLogEntry
*entry
, const EventTagMap
* map
, char* messageBuf
,
131 * Formats a log message into a buffer
133 * Uses defaultBuffer if it can, otherwise malloc()'s a new buffer
134 * If return value != defaultBuffer, caller must call free()
135 * Returns NULL on malloc error
138 char *android_log_formatLogLine (
139 AndroidLogFormat
*p_format
,
141 size_t defaultBufferSize
,
142 const AndroidLogEntry
*p_line
,
143 size_t *p_outLength
);
147 * Either print or do not print log line, based on filter
149 * Assumes single threaded execution
152 int android_log_printLogLine(
153 AndroidLogFormat
*p_format
,
155 const AndroidLogEntry
*entry
);
163 #endif /*_LOGPRINT_H*/