1c99250a4d619670f2a9410df121eff04fdc9e87cJesse Wilson/*
2c99250a4d619670f2a9410df121eff04fdc9e87cJesse Wilson * Copyright (C) 2009 The Android Open Source Project
3c99250a4d619670f2a9410df121eff04fdc9e87cJesse Wilson *
4c99250a4d619670f2a9410df121eff04fdc9e87cJesse Wilson * Licensed under the Apache License, Version 2.0 (the "License");
5c99250a4d619670f2a9410df121eff04fdc9e87cJesse Wilson * you may not use this file except in compliance with the License.
6c99250a4d619670f2a9410df121eff04fdc9e87cJesse Wilson * You may obtain a copy of the License at
7c99250a4d619670f2a9410df121eff04fdc9e87cJesse Wilson *
8c99250a4d619670f2a9410df121eff04fdc9e87cJesse Wilson *      http://www.apache.org/licenses/LICENSE-2.0
9c99250a4d619670f2a9410df121eff04fdc9e87cJesse Wilson *
10c99250a4d619670f2a9410df121eff04fdc9e87cJesse Wilson * Unless required by applicable law or agreed to in writing, software
11c99250a4d619670f2a9410df121eff04fdc9e87cJesse Wilson * distributed under the License is distributed on an "AS IS" BASIS,
12c99250a4d619670f2a9410df121eff04fdc9e87cJesse Wilson * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13c99250a4d619670f2a9410df121eff04fdc9e87cJesse Wilson * See the License for the specific language governing permissions and
14c99250a4d619670f2a9410df121eff04fdc9e87cJesse Wilson * limitations under the License.
15c99250a4d619670f2a9410df121eff04fdc9e87cJesse Wilson */
16c99250a4d619670f2a9410df121eff04fdc9e87cJesse Wilson
17c99250a4d619670f2a9410df121eff04fdc9e87cJesse Wilsonpackage dalvik.system;
18c99250a4d619670f2a9410df121eff04fdc9e87cJesse Wilson
19c99250a4d619670f2a9410df121eff04fdc9e87cJesse Wilsonimport java.util.logging.Level;
20c99250a4d619670f2a9410df121eff04fdc9e87cJesse Wilsonimport java.util.logging.Logger;
21c99250a4d619670f2a9410df121eff04fdc9e87cJesse Wilson
22c99250a4d619670f2a9410df121eff04fdc9e87cJesse Wilson/**
23c99250a4d619670f2a9410df121eff04fdc9e87cJesse Wilson * An optimized handler for efficient publishing of basic log messages.
24c99250a4d619670f2a9410df121eff04fdc9e87cJesse Wilson * Implementers should also be subclasses of {@link java.util.logging.Handler}.
25c99250a4d619670f2a9410df121eff04fdc9e87cJesse Wilson *
26c99250a4d619670f2a9410df121eff04fdc9e87cJesse Wilson * <p>Unlike the default log handler, this API doesn't require intermediate
27c99250a4d619670f2a9410df121eff04fdc9e87cJesse Wilson * objects to be allocated for log handling. It also includes a short tag, which
28c99250a4d619670f2a9410df121eff04fdc9e87cJesse Wilson * may otherwise need to be calculated for each published message.
29c99250a4d619670f2a9410df121eff04fdc9e87cJesse Wilson *
30c99250a4d619670f2a9410df121eff04fdc9e87cJesse Wilson * @hide
31c99250a4d619670f2a9410df121eff04fdc9e87cJesse Wilson */
32c99250a4d619670f2a9410df121eff04fdc9e87cJesse Wilsonpublic interface DalvikLogHandler {
33c99250a4d619670f2a9410df121eff04fdc9e87cJesse Wilson
34c99250a4d619670f2a9410df121eff04fdc9e87cJesse Wilson    /**
35c99250a4d619670f2a9410df121eff04fdc9e87cJesse Wilson     * Publishes a log message. Unlike {@link
36c99250a4d619670f2a9410df121eff04fdc9e87cJesse Wilson     * java.util.logging.Handler#publish(java.util.logging.LogRecord)}, this
37c99250a4d619670f2a9410df121eff04fdc9e87cJesse Wilson     * method includes only the raw log message. Log messages that were created
38c99250a4d619670f2a9410df121eff04fdc9e87cJesse Wilson     * with additional fields (parameters, source methods, etc.) will flow
39c99250a4d619670f2a9410df121eff04fdc9e87cJesse Wilson     * through the conventional channels instead.
40c99250a4d619670f2a9410df121eff04fdc9e87cJesse Wilson     *
41c99250a4d619670f2a9410df121eff04fdc9e87cJesse Wilson     * @param tag the short (23 characters or fewer) logger tag identifying
42c99250a4d619670f2a9410df121eff04fdc9e87cJesse Wilson     *      {@code logger}.
43c99250a4d619670f2a9410df121eff04fdc9e87cJesse Wilson     */
44c99250a4d619670f2a9410df121eff04fdc9e87cJesse Wilson    void publish(Logger source, String tag, Level level, String message);
45c99250a4d619670f2a9410df121eff04fdc9e87cJesse Wilson
46c99250a4d619670f2a9410df121eff04fdc9e87cJesse Wilson    // TODO: support messages with throwables?
47c99250a4d619670f2a9410df121eff04fdc9e87cJesse Wilson}