Package org.h2.message
Class TraceSystem
java.lang.Object
org.h2.message.TraceSystem
- All Implemented Interfaces:
TraceWriter
The trace mechanism is the logging facility of this database. There is
usually one trace system per database. It is called 'trace' because the term
'log' is already used in the database domain and means 'transaction log'. It
is possible to write after close was called, but that means for each write
the file will be opened and closed again (which is slower).
-
Field Summary
FieldsModifier and TypeFieldDescriptionstatic final int
This trace level means all type of messages should be written, but instead of using the trace file the messages should be written to SLF4J.private static final int
private int
Starts at -1 so that we check the file size immediately upon open.private boolean
private SimpleDateFormat
static final int
This trace level means all type of messages should be written.private static final int
The default maximum trace file size.static final int
The default level for file trace messages.static final int
The default level for system out trace messages.static final int
This trace level means only errors should be written.private String
private Writer
static final int
This trace level means errors and informational messages should be written.private int
private int
private int
private int
static final int
This trace level means nothing should be written.static final int
The parent trace level should be used.private PrintWriter
private PrintStream
private final AtomicReferenceArray
<Trace> private TraceWriter
private boolean
-
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionvoid
close()
Close the writers, and the files if required.private void
private String
int
getTrace
(int moduleId) Get or create a trace object for this module id.Create a trace object for this module.boolean
isEnabled
(int level) Check the given trace / log level is enabled.private void
private boolean
void
setFileName
(String name) Set the trace file name.void
setLevelFile
(int level) Set the file trace level.void
setLevelSystemOut
(int level) Set the trace level to use for System.outvoid
setMaxFileSize
(int max) Set the maximum trace file size in bytes.void
Set the name of the database or trace object.void
setSysOut
(PrintStream out) Set the print stream to use instead of System.out.private void
void
Write a message.void
Write a message.private void
-
Field Details
-
PARENT
public static final int PARENTThe parent trace level should be used.- See Also:
-
OFF
public static final int OFFThis trace level means nothing should be written.- See Also:
-
ERROR
public static final int ERRORThis trace level means only errors should be written.- See Also:
-
INFO
public static final int INFOThis trace level means errors and informational messages should be written.- See Also:
-
DEBUG
public static final int DEBUGThis trace level means all type of messages should be written.- See Also:
-
ADAPTER
public static final int ADAPTERThis trace level means all type of messages should be written, but instead of using the trace file the messages should be written to SLF4J.- See Also:
-
DEFAULT_TRACE_LEVEL_SYSTEM_OUT
public static final int DEFAULT_TRACE_LEVEL_SYSTEM_OUTThe default level for system out trace messages.- See Also:
-
DEFAULT_TRACE_LEVEL_FILE
public static final int DEFAULT_TRACE_LEVEL_FILEThe default level for file trace messages.- See Also:
-
DEFAULT_MAX_FILE_SIZE
private static final int DEFAULT_MAX_FILE_SIZEThe default maximum trace file size. It is currently 64 MB. Additionally, there could be a .old file of the same size.- See Also:
-
CHECK_SIZE_EACH_WRITES
private static final int CHECK_SIZE_EACH_WRITES- See Also:
-
levelSystemOut
private int levelSystemOut -
levelFile
private int levelFile -
levelMax
private int levelMax -
maxFileSize
private int maxFileSize -
fileName
-
traces
-
dateFormat
-
fileWriter
-
printWriter
-
checkSize
private int checkSizeStarts at -1 so that we check the file size immediately upon open. This Can be important if we open and close the trace file without managing to have written CHECK_SIZE_EACH_WRITES bytes each time. -
closed
private boolean closed -
writingErrorLogged
private boolean writingErrorLogged -
writer
-
sysOut
-
-
Constructor Details
-
TraceSystem
Create a new trace system object.- Parameters:
fileName
- the file name
-
-
Method Details
-
updateLevel
private void updateLevel() -
setSysOut
Set the print stream to use instead of System.out.- Parameters:
out
- the new print stream
-
getTrace
Get or create a trace object for this module id. Trace modules with id are cached.- Parameters:
moduleId
- module id- Returns:
- the trace object
-
getTrace
Create a trace object for this module. Trace modules with names are not cached.- Parameters:
module
- the module name- Returns:
- the trace object
-
isEnabled
public boolean isEnabled(int level) Description copied from interface:TraceWriter
Check the given trace / log level is enabled.- Specified by:
isEnabled
in interfaceTraceWriter
- Parameters:
level
- the level- Returns:
- true if the level is enabled
-
setFileName
Set the trace file name.- Parameters:
name
- the file name
-
setMaxFileSize
public void setMaxFileSize(int max) Set the maximum trace file size in bytes.- Parameters:
max
- the maximum size
-
setLevelSystemOut
public void setLevelSystemOut(int level) Set the trace level to use for System.out- Parameters:
level
- the new level
-
setLevelFile
public void setLevelFile(int level) Set the file trace level.- Parameters:
level
- the new level
-
getLevelFile
public int getLevelFile() -
format
-
write
Description copied from interface:TraceWriter
Write a message.- Specified by:
write
in interfaceTraceWriter
- Parameters:
level
- the trace levelmoduleId
- the id of the modules
- the messaget
- the exception (may be null)
-
write
Description copied from interface:TraceWriter
Write a message.- Specified by:
write
in interfaceTraceWriter
- Parameters:
level
- the trace levelmodule
- the name of the modules
- the messaget
- the exception (may be null)
-
writeFile
-
logWritingError
-
openWriter
private boolean openWriter() -
closeWriter
private void closeWriter() -
close
public void close()Close the writers, and the files if required. It is still possible to write after closing, however after each write the file is closed again (slowing down tracing). -
setName
Description copied from interface:TraceWriter
Set the name of the database or trace object.- Specified by:
setName
in interfaceTraceWriter
- Parameters:
name
- the new name
-