am f0bead28: Merge "DO NOT MERGE Enhance local log." into mnc-dev

* commit 'f0bead280154fd9a5d2c07b1186e10fcfeed55fc':
  DO NOT MERGE Enhance local log.
This commit is contained in:
Robert Greenwalt
2015-07-24 20:06:31 +00:00
committed by Android Git Automerger

View File

@@ -30,20 +30,32 @@ public final class LocalLog {
private LinkedList<String> mLog;
private int mMaxLines;
private long mNow;
private final boolean mKeepFirst;
public LocalLog(int maxLines) {
mLog = new LinkedList<String>();
mMaxLines = maxLines;
mKeepFirst = false;
}
public LocalLog(int maxLines, boolean keepFirst) {
mLog = new LinkedList<String>();
mMaxLines = maxLines;
mKeepFirst = keepFirst;
}
public synchronized void log(String msg) {
mNow = System.currentTimeMillis();
StringBuilder sb = new StringBuilder();
Calendar c = Calendar.getInstance();
c.setTimeInMillis(mNow);
sb.append(String.format("%tm-%td %tH:%tM:%tS.%tL", c, c, c, c, c, c));
logStraight(sb.toString() + " - " + msg);
}
private synchronized void logStraight(String msg) {
if (mKeepFirst == false || mLog.size() < mMaxLines) mLog.add(msg);
if (mMaxLines > 0) {
mNow = System.currentTimeMillis();
StringBuilder sb = new StringBuilder();
Calendar c = Calendar.getInstance();
c.setTimeInMillis(mNow);
sb.append(String.format("%tm-%td %tH:%tM:%tS.%tL", c, c, c, c, c, c));
mLog.add(sb.toString() + " - " + msg);
while (mLog.size() > mMaxLines) mLog.remove();
}
}
@@ -74,4 +86,13 @@ public final class LocalLog {
public ReadOnlyLocalLog readOnlyLocalLog() {
return new ReadOnlyLocalLog(this);
}
public synchronized void copyTo(LocalLog other, int lines) {
int end = mLog.size()-1;
int begin = end - lines;
if (begin < 0) begin = 0;
for (; begin < end; begin++) {
other.logStraight(mLog.get(begin));
}
}
}