Package VASSAL.build.module
Class BasicLogger
java.lang.Object
VASSAL.build.module.BasicLogger
- All Implemented Interfaces:
Buildable,GameComponent,CommandEncoder,Logger
BasicLogger deals with VLOG Vassal Log files (i.e. NOT the errorLog--see below):
(1) Starts/stops logging to a VLOG file.
(2) Supplies prompt dialogs related to starting logfiles
(3) Steps through VLOG files ("step forward") button
(4) Executes the "UNDO" action when user clicks that Undo button
(5) Provides configurers to
For the errorLog file see
org.slf4j.Logger log = LoggerFactory.getLogger(Console.class);
log.error("write to errorlog as an error")
log.warning("write a warning")
log.info("write some info")
(1) Starts/stops logging to a VLOG file.
(2) Supplies prompt dialogs related to starting logfiles
(3) Steps through VLOG files ("step forward") button
(4) Executes the "UNDO" action when user clicks that Undo button
(5) Provides configurers to
GlobalOptions for the Undo and Step Forward buttons
For the errorLog file see
Logger, e.g.:
org.slf4j.Logger log = LoggerFactory.getLogger(Console.class);
log.error("write to errorlog as an error")
log.warning("write a warning")
log.info("write some info")
-
Nested Class Summary
Nested ClassesModifier and TypeClassDescriptionstatic classclassclass -
Field Summary
FieldsModifier and TypeFieldDescriptionstatic Stringprotected Commandstatic Stringprotected Actionstatic Stringprotected SaveMetaDataprotected Actionprotected intprotected intprotected Filestatic Stringstatic Stringstatic Stringstatic Stringprotected static Stringprotected Actionprotected static Stringprotected Action -
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionvoidAdds a child component.voidExpects to be added to aGameModule.protected voidvoidPresently no XML attributes or subcomponents to be builtTranslate a String into aCommandvoidenableDrawing(boolean show)Recognizes a logging command.getBuildElement(Document doc)When saving a game, each GameComponent should return aCommandthat, when executed, restores the GameComponent to its state when the game was saved If this component has no persistent state, return nullbooleanbooleanbooleanbooleanvoidLogs a Command to outputvoidqueryNewLogFile(boolean atStart)Check if user would like to create a new logfile (only prompts if the appropriate preference is on)voidvoidsetMultiPlayer(boolean multiPlayer)voidsetup(boolean startingGame)Our setup method is called by GameState whenever a game starts or ends.protected voidstep()Step forward through the currently replaying vlog logfile, by getting the nextCommandand executing it.protected voidundo()This handles the UNDO button, executing the actual "Undo".voidwrite()Write the logfile to a file.
-
Field Details
-
BEGIN
- See Also:
- Constant Field Values
-
END
- See Also:
- Constant Field Values
-
LOG
- See Also:
- Constant Field Values
-
PROMPT_NEW_LOG
- See Also:
- Constant Field Values
-
PROMPT_NEW_LOG_START
- See Also:
- Constant Field Values
-
PROMPT_NEW_LOG_END
- See Also:
- Constant Field Values
-
PROMPT_LOG_COMMENT
- See Also:
- Constant Field Values
-
STEP_ICON
- See Also:
- Constant Field Values
-
UNDO_ICON
- See Also:
- Constant Field Values
-
logInput
-
logOutput
-
nextInput
protected int nextInput -
nextUndo
protected int nextUndo -
beginningState
-
outputFile
-
stepAction
-
metadata
-
undoAction
-
endLogAction
-
newLogAction
-
-
Constructor Details
-
BasicLogger
public BasicLogger()
-
-
Method Details
-
build
Presently no XML attributes or subcomponents to be built -
addTo
Expects to be added to aGameModule. AddsUndo,Step, andEnd Logbuttons to the the control window toolbar. RegistersKeyStrokeListeners for hotkey equivalents of each button. -
getBuildElement
- Specified by:
getBuildElementin interfaceBuildable- Parameters:
doc- XML file- Returns:
- an XML element from which this component can be built
-
add
Description copied from interface:BuildableAdds a child component. Both this method andBuildable.addTo(VASSAL.build.Buildable)are invoked when adding a child to a parent -
remove
-
setMultiPlayer
public void setMultiPlayer(boolean multiPlayer) -
isMultiPlayer
public boolean isMultiPlayer() -
setup
public void setup(boolean startingGame)Our setup method is called by GameState whenever a game starts or ends.- Specified by:
setupin interfaceGameComponent- Parameters:
startingGame- True if a new game starting, false if a game is ending/closing
-
isLogging
public boolean isLogging()- Returns:
- true if we're currently logging the game to a VLOG file
-
isReplaying
public boolean isReplaying()- Returns:
- true if we're currently replaying a VLOG file, that has unexecuted "step forwards" remaining
-
getRestoreCommand
Description copied from interface:GameComponentWhen saving a game, each GameComponent should return aCommandthat, when executed, restores the GameComponent to its state when the game was saved If this component has no persistent state, return null- Specified by:
getRestoreCommandin interfaceGameComponent
-
enableDrawing
public void enableDrawing(boolean show) -
step
protected void step()Step forward through the currently replaying vlog logfile, by getting the nextCommandand executing it. -
queryNewLogFile
public void queryNewLogFile(boolean atStart)Check if user would like to create a new logfile (only prompts if the appropriate preference is on)- Parameters:
atStart- true if prompting because we're just starting a session; false if prompting because we just finished replaying a logfile.
-
write
Write the logfile to a file. The filename will have been selected when the logfile was begun.- Throws:
IOException
-
beginOutput
protected void beginOutput() -
undo
protected void undo()This handles the UNDO button, executing the actual "Undo". -
log
Logs a Command to output -
hasMoreCommands
public boolean hasMoreCommands()- Returns:
- true if there are Input Steps yet to be replayed
-
encode
Recognizes a logging command. The logging command is a wrapper around an ordinaryCommandindicating that the wrapped command should be stored and executed in sequence (when theStepbutton is pressed)- Specified by:
encodein interfaceCommandEncoder
-
decode
Description copied from interface:CommandEncoderTranslate a String into aCommand- Specified by:
decodein interfaceCommandEncoder
-