📄 aediagnosticslogger.java
字号:
// Decompiled by Jad v1.5.8e2. Copyright 2001 Pavel Kouznetsov.
// Jad home page: http://kpdus.tripod.com/jad.html
// Decompiler options: packimports(3) fieldsfirst ansi space
// Source File Name: AEDiagnosticsLogger.java
package org.gudy.azureus2.core3.util;
import java.io.*;
import java.util.*;
// Referenced classes of package org.gudy.azureus2.core3.util:
// AEDiagnostics, Constants
public class AEDiagnosticsLogger
{
private static final int MAX_PENDING = 8192;
private String name;
private int max_size;
private File debug_dir;
private boolean first_file;
private boolean first_write;
private LinkedList pending;
private int pending_size;
private boolean direct_writes;
protected AEDiagnosticsLogger(File _debug_dir, String _name, int _max_size, boolean _direct_writes)
{
first_file = true;
first_write = true;
debug_dir = _debug_dir;
name = _name;
max_size = _max_size;
direct_writes = _direct_writes;
try
{
File f1 = getLogFile();
first_file = false;
File f2 = getLogFile();
first_file = true;
if (f1.exists() && f2.exists() && f1.lastModified() < f2.lastModified())
first_file = false;
}
catch (Throwable ignore) { }
}
protected String getName()
{
return name;
}
public void log(Throwable e)
{
try
{
ByteArrayOutputStream baos = new ByteArrayOutputStream();
PrintWriter pw = new PrintWriter(new OutputStreamWriter(baos));
e.printStackTrace(pw);
pw.close();
log(baos.toString());
}
catch (Throwable ignore) { }
}
public void logAndOut(String str)
{
logAndOut(str, false);
}
public void logAndOut(String str, boolean stderr)
{
if (stderr)
System.err.println(str);
else
System.out.println(str);
log(str);
}
public void logAndOut(Throwable e)
{
e.printStackTrace();
log(e);
}
public void log(String _str)
{
StringBuilder str;
label0:
{
if (!AEDiagnostics.loggers_enabled)
return;
Calendar now = GregorianCalendar.getInstance();
str = new StringBuilder(_str.length() + 20);
String timeStamp = (new StringBuilder()).append("[").append(format(now.get(5))).append(format(now.get(2) + 1)).append(" ").append(format(now.get(11))).append(":").append(format(now.get(12))).append(":").append(format(now.get(13))).append("] ").toString();
synchronized (this)
{
if (first_write)
{
first_write = false;
str.append("\r\n[");
str.append(now.get(1));
str.append("] Log File Opened for ");
str.append(Constants.APP_NAME);
str.append(" ");
str.append("4.2.0.0");
str.append("\r\n");
}
str.append(timeStamp);
str.append(_str);
if (direct_writes)
break label0;
if (pending == null)
pending = new LinkedList();
pending.add(str);
pending_size += str.length();
if (pending_size > 8192)
writePending();
}
return;
}
write(str);
aediagnosticslogger;
JVM INSTR monitorexit ;
goto _L1
exception;
throw exception;
_L1:
}
private void write(StringBuilder str)
{
label0:
{
PrintWriter pw = null;
try
{
File log_file = getLogFile();
if (log_file.length() >= (long)max_size)
{
first_file = !first_file;
log_file = getLogFile();
log_file.delete();
}
pw = new PrintWriter(new FileWriter(log_file, true));
pw.println(str);
}
catch (Throwable e)
{
if (pw != null)
pw.close();
break label0;
}
finally
{
if (pw != null)
pw.close();
throw exception;
}
if (pw != null)
pw.close();
break label0;
}
}
protected void writePending()
{
label0:
{
synchronized (this)
{
if (pending != null)
break label0;
}
return;
}
label1:
{
PrintWriter pw = null;
try
{
File log_file = getLogFile();
if (log_file.length() >= (long)max_size)
{
first_file = !first_file;
log_file = getLogFile();
log_file.delete();
}
pw = new PrintWriter(new FileWriter(log_file, true));
StringBuilder str;
for (Iterator i$ = pending.iterator(); i$.hasNext(); pw.println(str))
str = (StringBuilder)i$.next();
}
catch (Throwable e)
{
direct_writes = true;
pending = null;
if (pw != null)
pw.close();
break label1;
}
finally
{
direct_writes = true;
pending = null;
if (pw != null)
pw.close();
throw exception;
}
direct_writes = true;
pending = null;
if (pw != null)
pw.close();
break label1;
}
aediagnosticslogger;
JVM INSTR monitorexit ;
goto _L1
exception1;
throw exception1;
_L1:
}
private File getLogFile()
{
return new File(debug_dir, (new StringBuilder()).append(getName()).append("_").append(first_file ? "1" : "2").append(".log").toString());
}
private static String format(int n)
{
if (n < 10)
return (new StringBuilder()).append("0").append(n).toString();
else
return String.valueOf(n);
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -