LogFileManager.java
3.59 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
package com.crashlytics.android.core;
import android.content.Context;
import io.fabric.sdk.android.Fabric;
import io.fabric.sdk.android.Logger;
import io.fabric.sdk.android.services.common.CommonUtils;
import io.fabric.sdk.android.services.persistence.FileStore;
import java.io.File;
import java.util.Set;
class LogFileManager
{
private static final String COLLECT_CUSTOM_LOGS = "com.crashlytics.CollectCustomLogs";
private static final String DIRECTORY_NAME = "log-files";
private static final String LOGFILE_EXT = ".temp";
private static final String LOGFILE_PREFIX = "crashlytics-userlog-";
static final int MAX_LOG_SIZE = 65536;
private static final NoopLogStore NOOP_LOG_STORE = new NoopLogStore(null);
private final Context context;
private FileLogStore currentLog;
private final FileStore fileStore;
public LogFileManager(Context paramContext, FileStore paramFileStore)
{
this(paramContext, paramFileStore, null);
}
public LogFileManager(Context paramContext, FileStore paramFileStore, String paramString)
{
this.context = paramContext;
this.fileStore = paramFileStore;
this.currentLog = NOOP_LOG_STORE;
setCurrentSession(paramString);
}
private File getLogFileDir()
{
File localFile = new File(this.fileStore.getFilesDir(), "log-files");
if (!localFile.exists()) {
localFile.mkdirs();
}
return localFile;
}
private String getSessionIdForFile(File paramFile)
{
paramFile = paramFile.getName();
int i = paramFile.lastIndexOf(".temp");
if (i == -1) {
return paramFile;
}
return paramFile.substring(20, i);
}
private File getWorkingFileForSession(String paramString)
{
paramString = "crashlytics-userlog-" + paramString + ".temp";
return new File(getLogFileDir(), paramString);
}
public void clearLog()
{
this.currentLog.deleteLogFile();
}
public void discardOldLogFiles(Set<String> paramSet)
{
File[] arrayOfFile = getLogFileDir().listFiles();
if (arrayOfFile != null)
{
int j = arrayOfFile.length;
int i = 0;
while (i < j)
{
File localFile = arrayOfFile[i];
if (!paramSet.contains(getSessionIdForFile(localFile))) {
localFile.delete();
}
i += 1;
}
}
}
public ByteString getByteStringForLog()
{
return this.currentLog.getLogAsByteString();
}
public final void setCurrentSession(String paramString)
{
this.currentLog.closeLogFile();
this.currentLog = NOOP_LOG_STORE;
if (paramString == null) {
return;
}
if (!CommonUtils.getBooleanResourceValue(this.context, "com.crashlytics.CollectCustomLogs", true))
{
Fabric.getLogger().d("CrashlyticsCore", "Preferences requested no custom logs. Aborting log file creation.");
return;
}
setLogFile(getWorkingFileForSession(paramString), 65536);
}
void setLogFile(File paramFile, int paramInt)
{
this.currentLog = new QueueFileLogStore(paramFile, paramInt);
}
public void writeToLog(long paramLong, String paramString)
{
this.currentLog.writeToLog(paramLong, paramString);
}
static final class NoopLogStore
implements FileLogStore
{
public final void closeLogFile() {}
public final void deleteLogFile() {}
public final ByteString getLogAsByteString()
{
return null;
}
public final void writeToLog(long paramLong, String paramString) {}
}
}
/* Location: /home/merong/decompile/hackery-dex2jar.jar!/com/crashlytics/android/core/LogFileManager.class
* Java compiler version: 6 (50.0)
* JD-Core Version: 0.7.1
*/