public final class AgentLogger extends Logger
Modifier and Type | Field and Description |
---|---|
static Formatter |
AGENT_FILE_FORMATTER
Defines the default file formatter as : LOG_LEVEL : message
|
static Formatter |
AGENT_FORMATTER
Defines the default formatter as : [agent's name] LOG_LEVEL : message
|
global, GLOBAL_LOGGER_NAME
Modifier and Type | Method and Description |
---|---|
void |
addFileHandler(Path logDirectory,
String fileName,
boolean append,
boolean includeDefaultComment)
Adds a new
FileHandler to this logger. |
void |
addHandler(Handler handler) |
void |
createLogFile()
Creates a default log file for this logger.
|
static void |
createLogFiles()
Create a log file for each agent having a non
null logger. |
void |
disableCGRWarnings()
Disables the logging of
Level.WARNING messages related with failed queries over the artificial
society. |
void |
doNotReactToDebugMode()
Prevents this logger to change its level when
setAllLoggersAtLevelAll()
or setAllLogLevels(Level) are used. |
void |
enableCGRWarnings()
Enables the logging of
Level.WARNING messages related with failed queries over the artificial
society. |
BooleanAction |
getEnableCGRWarningsAction() |
Level |
getWarningLogLevel()
Deprecated.
as of MaDKit 5.2, replaced by
enableCGRWarnings() |
boolean |
isCGRWarningsOn()
Tells if CGR warnings (Community, Group, Role) are enabled.
|
boolean |
isLoggable(Level level)
Check if a message of the given level would actually be logged
by this logger.
|
void |
log(LogRecord record) |
static void |
resetAllLoggersToDefaultLevel()
reset all loggers to the level specified by
Madkit.LevelOption.agentLogLevel |
static void |
setAllLoggersAtLevelAll()
A convenient way of activating a debug session
|
static void |
setAllLogLevels(Level level)
Set all the agents' loggers to the specified level
|
void |
setLevel(Level newLevel)
Set the log level for the corresponding agent.
|
void |
setWarningLogLevel(Level warningLogLevel)
Deprecated.
as of MaDKit 5.2, replaced by
enableCGRWarnings() |
void |
severeLog(String message)
This call bypasses any settings and always produces severe log messages whatever the logger's current level.
|
void |
severeLog(String message,
Throwable t)
This call bypasses any settings and always produces severe log messages displaying the stack trace of the throwable
if it is not
null |
void |
talk(String msg)
Logs a
TALK message. |
String |
toString() |
config, config, entering, entering, entering, exiting, exiting, fine, fine, finer, finer, finest, finest, getAnonymousLogger, getAnonymousLogger, getFilter, getGlobal, getHandlers, getLevel, getLogger, getLogger, getName, getParent, getResourceBundle, getResourceBundleName, getUseParentHandlers, info, info, log, log, log, log, log, log, logp, logp, logp, logp, logp, logp, logrb, logrb, logrb, logrb, logrb, logrb, removeHandler, setFilter, setParent, setResourceBundle, setUseParentHandlers, severe, severe, throwing, warning, warning
public static final Formatter AGENT_FORMATTER
public static final Formatter AGENT_FILE_FORMATTER
public void setLevel(Level newLevel)
newLevel
is Level.ALL
then
enableCGRWarnings()
is automatically triggered.public void doNotReactToDebugMode()
setAllLoggersAtLevelAll()
or setAllLogLevels(Level)
are used.public boolean isCGRWarningsOn()
true
if CGR warnings are enabled for this loggerenableCGRWarnings()
public void enableCGRWarnings()
Level.WARNING
messages related with failed queries over the artificial
society. For instance, if an agent tries to get agent addresses using
AbstractAgent.getAgentsWithRole(String, String, String)
over a CGR location which does not exist then there
will be a warning about that. Since such results could be obtained by agents on purpose, this method provides a
convenient way of enabling these kind of traces as will.public void disableCGRWarnings()
Level.WARNING
messages related with failed queries over the artificial
society.enableCGRWarnings()
public BooleanAction getEnableCGRWarningsAction()
Action
for building UI with this featurepublic void createLogFile()
addLogFile(null, null, false, true)
This file will be located in the directory specified by the MaDKit
property Madkit.Option.logDirectory
, which is set to "logs" by default.public void addFileHandler(Path logDirectory, String fileName, boolean append, boolean includeDefaultComment)
FileHandler
to this logger. This method provides an easy way of creating a new file handler with
an agent formatting and with a corresponding file located in a specified directory. The related file will be located
in the directory specified by the MaDKit property Madkit.Option.logDirectory
, which is set to "logs" followed by a
directory named according to the date of the run.logDirectory
- the logDirectory to be used may be null
, in which case the file will be located in the directory
specified by the MaDKit property Madkit.Option.logDirectory
which is set to "logs" by default.fileName
- may be null
, in which case Logger.getName()
is usedappend
- if true
, then bytes will be written to the end of the file rather than the beginningincludeDefaultComment
- if true
, includes comments displaying creation and closing datesFileHandler
public void addHandler(Handler handler)
addHandler
in class Logger
public void talk(String msg)
TALK
message. This uses a special level which could be used to produce messages that will be
rendered as they are, without any formatting work nor end-of-line character.
If the logger's level is not Level.OFF
then the given message is forwarded to all the registered output
Handler objects.
If the logger's level is Level.OFF
then the message is only printed to System.out
msg
- The string messagepublic boolean isLoggable(Level level)
isLoggable
in class Logger
level
- a message logging levelpublic void severeLog(String message, Throwable t)
null
message
- the message to displayt
- the related exception if any. It can be null
public void severeLog(String message)
message
- the message to displaypublic static void setAllLogLevels(Level level)
level
- the new levelpublic static void setAllLoggersAtLevelAll()
public static void resetAllLoggersToDefaultLevel()
Madkit.LevelOption.agentLogLevel
public static void createLogFiles()
null
logger.createLogFile()
@Deprecated public Level getWarningLogLevel()
enableCGRWarnings()
@Deprecated public void setWarningLogLevel(Level warningLogLevel)
enableCGRWarnings()
Fabien Michel, Olivier Gutknecht, Jacques Ferber - February 17 2020