public class MainCmdLoggingStream extends java.lang.Object implements MainCmdLogging_ifc
MainCmd
class,
but independent of that. It is intent to use if the logging features are other than in the
main routine given, or if MainCmd
is not used for the originally invocation of a Java program.
Especially it can be used for logging output inside a JZtxtcmdExecuter
for some
special routines.Modifier and Type | Field and Description |
---|---|
protected java.lang.Appendable |
app |
private java.text.SimpleDateFormat |
dateFormat |
protected java.io.OutputStream |
out
Stream to output all logging information.
|
private java.io.PrintStream |
printStream
Created on demand.
|
private java.io.PrintWriter |
printWriter
Created on demand.
|
(package private) int |
reportLevel
This variable determines which level is output.
|
private static java.lang.String |
sLeft |
static java.lang.String |
sVersion
Version, history and license.
|
private java.lang.StringBuilder |
u |
anytime, eventOrder, exitSuccessfull, exitUserAbort, exitWithArgumentError, exitWithErrors, exitWithFileProblems, exitWithNotes, exitWithWarnings, fineEventOrder, interested, version
debug, error, fineDebug, fineInfo, info, minSecondsFormat, mNeverOutputToDisplay, mReportLevel, warning
Constructor and Description |
---|
MainCmdLoggingStream(java.io.OutputStream out)
Create with given output stream, or empty.
|
MainCmdLoggingStream(java.io.OutputStream out,
int reportLevel)
Create with given output stream, or empty.
|
MainCmdLoggingStream(java.lang.String sDateFormat,
java.lang.Appendable app)
Create with given Appendable and dateformat.
|
MainCmdLoggingStream(java.lang.String sDateFormat,
java.lang.Appendable app,
int reportLevel)
Create with given output stream, or empty.
|
Modifier and Type | Method and Description |
---|---|
java.lang.Appendable |
append(char c) |
java.lang.Appendable |
append(java.lang.CharSequence csq) |
java.lang.Appendable |
append(java.lang.CharSequence csq,
int start,
int end) |
void |
close()
A call of this method closes the devices, which processed the message.
|
void |
flush()
A call of this method causes an activating of transmission of all messages since last flush.
|
void |
flushReport()
Writes the content in the physical medium.
|
int |
getExitErrorLevel()
Returns 0
|
int |
getReportLevel()
access to the level of report.
|
int |
getReportLevelFromIdent(int ident)
gets the associated report level to a report identifier.
|
boolean |
isOnline()
Checks whether the message output is available.
|
void |
openReportfile(java.lang.String sFileReport,
boolean bAppendReport) |
void |
report(java.lang.CharSequence sText,
java.lang.Throwable exception)
report of a excpetion (in a new line)
|
void |
report(int nLevel,
java.lang.CharSequence string)
report inside a line
|
void |
reportln(int nLevel,
java.lang.CharSequence string)
report begins at a new a line
|
void |
reportln(int nLevel,
int nLeftMargin,
java.lang.CharSequence string)
report begins at a new a line with left margin
|
boolean |
sendMsg(int identNumber,
java.lang.CharSequence text,
java.lang.Object... args)
Sends a message.
|
boolean |
sendMsgTime(int identNumber,
OS_TimeStamp creationTime,
java.lang.CharSequence text,
java.lang.Object... args)
Sends a message.
|
boolean |
sendMsgVaList(int identNumber,
OS_TimeStamp creationTime,
java.lang.CharSequence text,
Va_list args)
Sends a message.
|
void |
setExitErrorLevel(int level)
set the exitErrorLevel of the maximum of given level of every call.
|
void |
setOutputChannels(java.lang.Appendable outP,
java.lang.Appendable errP)
Sets destinations for output and error output.
|
int |
setReportLevel(int newLevel)
Set another level inside programming.
|
void |
setReportLevelToIdent(int ident,
int nLevelActive)
Sets a dedicated level number to the known output priorities.
|
(package private) void |
writeBuffer() |
void |
writeError(java.lang.CharSequence sError)
Writes an error line.
|
void |
writeError(java.lang.String sError,
java.lang.Throwable exception)
Writes an error line caused by an exception.
|
void |
writeInfo(java.lang.CharSequence sInfo)
Appends an info to the end of the previous info, @see #writeInfoln.
|
void |
writeInfoln(java.lang.CharSequence sInfo)
Writes an info line.
|
(package private) void |
writeln(int level,
int nLeftMargin,
java.lang.CharSequence ss) |
void |
writeStackTrace(java.lang.Exception exc) |
void |
writeWarning(java.lang.CharSequence sError)
Writes an error line.
|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
msgSec, timeCurr, timeMsg
public static final java.lang.String sVersion
MainCmdLogging_ifc
and any class which does not have
an association to the MainCmd
.
protected java.io.OutputStream out
protected final java.lang.Appendable app
private final java.lang.StringBuilder u
private final java.text.SimpleDateFormat dateFormat
private static java.lang.String sLeft
private java.io.PrintWriter printWriter
private java.io.PrintStream printStream
int reportLevel
LogMessage.fineDebug
etc.public MainCmdLoggingStream(java.io.OutputStream out)
out
- may be null, use openReportfile(String, boolean)
than.public MainCmdLoggingStream(java.io.OutputStream out, int reportLevel)
out
- may be null, use openReportfile(String, boolean)
than.public MainCmdLoggingStream(java.lang.String sDateFormat, java.lang.Appendable app)
sDateFormat
- see simpleDateFormatter, use "MMM-dd HH:mm:ss.SSS: " for example.app
- may be null, use openReportfile(String, boolean)
than.public MainCmdLoggingStream(java.lang.String sDateFormat, java.lang.Appendable app, int reportLevel)
sDateFormat
- see simpleDateFormatter, use "MMM-dd HH:mm:ss.SSS: " for example.app
- may be null, use openReportfile(String, boolean)
than.public void flushReport()
LogMessage
flushReport
in interface LogMessage
public int getExitErrorLevel()
getExitErrorLevel
in interface MainCmdLogging_ifc
MainCmdLogging_ifc.getExitErrorLevel()
public int getReportLevel()
LogMessage
getReportLevel
in interface LogMessage
public int getReportLevelFromIdent(int ident)
LogMessage
getReportLevelFromIdent
in interface LogMessage
ident
- The identifier.public void openReportfile(java.lang.String sFileReport, boolean bAppendReport) throws java.io.FileNotFoundException
openReportfile
in interface MainCmdLogging_ifc
java.io.FileNotFoundException
public void report(int nLevel, java.lang.CharSequence string)
LogMessage
report
in interface LogMessage
void writeBuffer()
void writeln(int level, int nLeftMargin, java.lang.CharSequence ss)
public void report(java.lang.CharSequence sText, java.lang.Throwable exception)
LogMessage
report
in interface LogMessage
public void reportln(int nLevel, int nLeftMargin, java.lang.CharSequence string)
LogMessage
reportln
in interface LogMessage
nLevel
- write the report only if the demand level is greater or equal.nLeftMargin
- determins a left margin. First a new line is outputted, followed by '*' and spaces.string
- String to write.public void reportln(int nLevel, java.lang.CharSequence string)
LogMessage
reportln
in interface LogMessage
nLevel
- write the report only if the demand level is greater or equal.string
- String to write.public void setExitErrorLevel(int level)
MainCmdLogging_ifc
setExitErrorLevel
in interface MainCmdLogging_ifc
level
- Errorlevel how defined in Report, 0 is the lowest level (successfull), >0 is worse.public void setOutputChannels(java.lang.Appendable outP, java.lang.Appendable errP)
MainCmdLogging_ifc
setOutputChannels
in interface MainCmdLogging_ifc
outP
- Destination for output. If null, current output isn't change.errP
- Destination for error output. If null, current output isn't change.public void setReportLevelToIdent(int ident, int nLevelActive)
LogMessage
setReportLevelToIdent
in interface LogMessage
nLevelActive
- Ones of the known priotity levels Report.error
to Report.fineDebug
.
class MyModule { /**Define module-specific numbers to identify a level. * The numbers should be define regarding a band of numbers in the application. * / static final int myReportLevel1 = 3500, myReportLevel2=3501; void init() { setLevelActive(myReportLevel1, Report.info); //This reports should be outputted always setLevelActive(myReportLevel2, Report.debug); //This reports are debug infos. } void processAnything() { report.reportln( myReportLevel1, "InfoText"); //It depends on the report level settings report.reportln( myReportLevel2, "DebugText");//whether it is outputed or not. }
public int setReportLevel(int newLevel)
LogMessage
setReportLevel
in interface LogMessage
public void writeError(java.lang.CharSequence sError)
LogMessage
writeError
in interface LogMessage
sError
- The error text, it should be without such hot spot words line "!!!ERROR!!!",
because the distinction in display should be done by the implementation of this method.
A good sample is writeErrorln("cannot create file: " + sFileName);public void writeError(java.lang.String sError, java.lang.Throwable exception)
LogMessage
writeError
in interface LogMessage
exception
- The catched Exception. The getMessage()-part of the exception is written after sError.
The stacktrace of the exception is written to report.public void writeInfo(java.lang.CharSequence sInfo)
LogMessage
writeInfo
in interface LogMessage
sInfo
- String to be written.public void writeInfoln(java.lang.CharSequence sInfo)
LogMessage
writeInfoln
in interface LogMessage
sInfo
- String to be written.public void writeStackTrace(java.lang.Exception exc)
writeStackTrace
in interface MainCmdLogging_ifc
public void writeWarning(java.lang.CharSequence sError)
LogMessage
writeWarning
in interface LogMessage
sError
- The error text, it should be without such hot spot words line "!!!WARNING!!!",
because the distinction in display should be done by the implementation of this method.
A good sample is writeErrorln("file is empty: " + sFileName);public void close()
LogMessage
close
mean.
If the device is a log file writer it should be clearly.
close
may mean, the processing of messages is finite temporary.
An open
occurs automatically, if a new message is dispatched.close
in interface LogMessage
public void flush()
LogMessage
flush
mean.
If the device is a log file writer it should be clearly.
flush
may mean, the processing of messages is ready to transmit yet.flush
in interface LogMessage
public boolean isOnline()
LogMessage
isOnline
in interface LogMessage
public boolean sendMsg(int identNumber, java.lang.CharSequence text, java.lang.Object... args)
LogMessage
#sendMsg(int, OS_TimeStamp, String, Object...)
.sendMsg
in interface LogMessage
identNumber
- of the message. If it is negative, it is the same message as positive number,
but with information 'going state', where the positive number is 'coming state'.text
- The text representation of the message, format string, see java.lang.String.format(..).args
- 0, 1 or more arguments of any type.
The interpretation of the arguments is controlled by param text.public boolean sendMsgTime(int identNumber, OS_TimeStamp creationTime, java.lang.CharSequence text, java.lang.Object... args)
LogMessage
sendMsgTime
in interface LogMessage
identNumber
- of the message. If it is negative, it is the same message as positive number,
but with information 'going state', where the positive number is 'coming state'.creationTime
- absolute time stamp. @Java2C=perValue.text
- The text representation of the message, format string, see java.lang.String.format(..).args
- 0, 1 or more arguments of any type.
The interpretation of the arguments is controlled by param text.public boolean sendMsgVaList(int identNumber, OS_TimeStamp creationTime, java.lang.CharSequence text, Va_list args)
LogMessage
#sendMsg(int, OS_TimeStamp, String, Object...)
, but the parameter args is varied:sendMsgVaList
in interface LogMessage
text
- The text of the message: Hint for Java2C: This is a StringJc, not a simple char const*.
That is necessary because the String may be replaced.args
- Reference to a buffer which contains the values for a variable argument list.
vprintf(buffer, text, args)
.
The referenced instance shouldn't accepted as persistent outside processing time
of the called routine. Therefore stack content is able to provide.
public java.lang.Appendable append(java.lang.CharSequence csq) throws java.io.IOException
append
in interface java.lang.Appendable
java.io.IOException
public java.lang.Appendable append(java.lang.CharSequence csq, int start, int end) throws java.io.IOException
append
in interface java.lang.Appendable
java.io.IOException
public java.lang.Appendable append(char c) throws java.io.IOException
append
in interface java.lang.Appendable
java.io.IOException