com.android.ddmlib.logcat.LogCatMessage Maven / Gradle / Ivy
Go to download
Show more of this group Show more artifacts with this name
Show all versions of ddmlib Show documentation
Show all versions of ddmlib Show documentation
Library providing APIs to talk to Android devices
/*
* Copyright (C) 2011 The Android Open Source Project
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package com.android.ddmlib.logcat;
import com.android.annotations.NonNull;
import com.android.ddmlib.Log.LogLevel;
/**
* Model a single log message output from {@code logcat -v long}.
* A logcat message has a {@link LogLevel}, the pid (process id) of the process
* generating the message, the time at which the message was generated, and
* the tag and message itself.
*/
public final class LogCatMessage {
private final LogLevel mLogLevel;
private final String mPid;
private final String mTid;
private final String mAppName;
private final String mTag;
private final String mTime;
private final String mMessage;
/**
* Construct an immutable log message object.
*/
public LogCatMessage(@NonNull LogLevel logLevel, @NonNull String pid, @NonNull String tid,
@NonNull String appName, @NonNull String tag,
@NonNull String time, @NonNull String msg) {
mLogLevel = logLevel;
mPid = pid;
mAppName = appName;
mTag = tag;
mTime = time;
mMessage = msg;
long tidValue;
try {
// Thread id's may be in hex on some platforms.
// Decode and store them in radix 10.
tidValue = Long.decode(tid.trim());
} catch (NumberFormatException e) {
tidValue = -1;
}
mTid = Long.toString(tidValue);
}
@NonNull
public LogLevel getLogLevel() {
return mLogLevel;
}
@NonNull
public String getPid() {
return mPid;
}
@NonNull
public String getTid() {
return mTid;
}
@NonNull
public String getAppName() {
return mAppName;
}
@NonNull
public String getTag() {
return mTag;
}
@NonNull
public String getTime() {
return mTime;
}
@NonNull
public String getMessage() {
return mMessage;
}
@Override
public String toString() {
return mTime + ": "
+ mLogLevel.getPriorityLetter() + "/"
+ mTag + "("
+ mPid + "): "
+ mMessage;
}
}