19066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project/*
29066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * Copyright (C) 2006 The Android Open Source Project
39066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project *
49066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * Licensed under the Apache License, Version 2.0 (the "License");
59066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * you may not use this file except in compliance with the License.
69066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * You may obtain a copy of the License at
79066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project *
89066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project *      http://www.apache.org/licenses/LICENSE-2.0
99066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project *
109066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * Unless required by applicable law or agreed to in writing, software
119066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * distributed under the License is distributed on an "AS IS" BASIS,
129066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
139066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * See the License for the specific language governing permissions and
149066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * limitations under the License.
159066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project */
169066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
179066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectpackage android.util;
189066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
199066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project/**
209066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * Implementation of a {@link android.util.Printer} that sends its output
219066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * to the system log.
229066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project */
239066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectpublic class LogPrinter implements Printer {
249066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    private final int mPriority;
259066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    private final String mTag;
268a9b22056b13477f59df934928c00c58b5871c95Joe Onorato    private final int mBuffer;
279066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
289066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    /**
299066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * Create a new Printer that sends to the log with the given priority
309066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * and tag.
319066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     *
329066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * @param priority The desired log priority:
339066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * {@link android.util.Log#VERBOSE Log.VERBOSE},
349066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * {@link android.util.Log#DEBUG Log.DEBUG},
359066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * {@link android.util.Log#INFO Log.INFO},
369066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * {@link android.util.Log#WARN Log.WARN}, or
379066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * {@link android.util.Log#ERROR Log.ERROR}.
389066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * @param tag A string tag to associate with each printed log statement.
399066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     */
409066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    public LogPrinter(int priority, String tag) {
419066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        mPriority = priority;
429066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        mTag = tag;
438a9b22056b13477f59df934928c00c58b5871c95Joe Onorato        mBuffer = Log.LOG_ID_MAIN;
448a9b22056b13477f59df934928c00c58b5871c95Joe Onorato    }
458a9b22056b13477f59df934928c00c58b5871c95Joe Onorato
468a9b22056b13477f59df934928c00c58b5871c95Joe Onorato    /**
478a9b22056b13477f59df934928c00c58b5871c95Joe Onorato     * @hide
488a9b22056b13477f59df934928c00c58b5871c95Joe Onorato     * Same as above, but buffer is one of the LOG_ID_ constants from android.util.Log.
498a9b22056b13477f59df934928c00c58b5871c95Joe Onorato     */
508a9b22056b13477f59df934928c00c58b5871c95Joe Onorato    public LogPrinter(int priority, String tag, int buffer) {
518a9b22056b13477f59df934928c00c58b5871c95Joe Onorato        mPriority = priority;
528a9b22056b13477f59df934928c00c58b5871c95Joe Onorato        mTag = tag;
538a9b22056b13477f59df934928c00c58b5871c95Joe Onorato        mBuffer = buffer;
549066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    }
559066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
569066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    public void println(String x) {
578a9b22056b13477f59df934928c00c58b5871c95Joe Onorato        Log.println_native(mBuffer, mPriority, mTag, x);
589066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    }
599066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project}
60