# Problem with understanding?
#	see here: http://proffs.tk.informatik.tu-darmstadt.de/gdi1/de/node/7549
# Problem not solved? Ask Jonas

# For quick instructions see below..

################################################################################################
################################################################################################
# You will see less messages (on your console)?
# Read http://proffs.tk.informatik.tu-darmstadt.de/gdi1/de/node/7549
# Or take a look to the appender-configuration
################################################

################################################################################################
# You will see debug messages (on your console)?
################################################
# - for the whole process or only for for one special class (or package)?

######## whole process:
# go to the rootLogger-section configuration an replace in this line "logInfoToConsole" with "logDebugToConsole"

######## Only for one special class or package (inklusive all subpackages):
# add to the "special loggers"-section this:
#		log4j.logger.<pathToClass>=DEBUG, logDebugToConsole, logToFile
#	to avoid double/multiple printing of messages add this line: 
#		log4j.additivity.<pathToClass>=false

# Example: (only messages out of the GameBoard class)
#		log4j.logger.gdi1sokoban.game.GameBoard=DEBUG, logToFile, logDebugToConsole
#		log4j.additivity.gdi1sokoban.game.GameBoard=false
# Example: (only messages out of the game packages)
#		log4j.logger.gdi1sokoban.game=DEBUG, logToFile, logDebugToConsole
#		log4j.additivity.gdi1sokoban.game=false

# If you do not turn additivity off you will get every message with log-level above debug multiple times.
# DO NOT FORGET to add "logToFile" - without there will be nothing written to the log file.
# (Obviously you can leave logToFile if you let additivity turned on)

# Why writing to a file?
# the buffer of your console is NOT endless. 
# If you print multiple messages you will not be able to get the first message.
# Ugly, if the reason for a error could be in initialisation...

##############################################################################################################################################
##############################################################################################################################################
#				rootLogger
##############################################################################################################################################
##############################################################################################################################################
#Remember the logging hierarchy:
# DEBUG < INFO < WARN < ERROR < FATAL

log4j.rootLogger=INFO, logDebugToConsole, logToFile 
log4j.additivity=false
log4j.additivity.rootLogger=false
#######################################################################


##############################################################################################################################################
##############################################################################################################################################
#				special loggers
##############################################################################################################################################
##############################################################################################################################################
#Remember the logging hierarchy:
# DEBUG < INFO < WARN < ERROR < FATAL


#you want set additional Appender to one special log-instance?
# do it here

# Example: (only messages out of the GameBoard class)
#		log4j.logger.gdi1sokoban.game.GameBoard=DEBUG, logToFile, logDebugToConsole
#		log4j.additivity.gdi1sokoban.game.GameBoard=false
# Example: (only messages out of the game packages)
#		log4j.logger.gdi1sokoban.game=DEBUG, logToFile, logDebugToConsole
#		log4j.additivity.gdi1sokoban.game=false

# If you do not turn additivity off you will get every message with log-level above debug multiple times.
# DO NOT FORGET to add "logToFile" - without there will be nothing written to the log file.
# (Obviously you can leave logToFile if you let additivity turned on)
 
# Why writing to a file?
# the buffer of your console is NOT endless. 
# If you print multiple messages you will not be able to get the first message.
# Ugly, if the reason for a error could be in initialisation...

#log4j.logger.gdi1sokoban.network.ping=DEBUG, logDebugToConsole

##############################################################################################################################################
##############################################################################################################################################
#				Appenders
##############################################################################################################################################
##############################################################################################################################################
#Remember the logging hierarchy:
# DEBUG < INFO < WARN < ERROR < FATAL

#######################################################################
# the appender with name logInfoToConsole will write on the console:
log4j.appender.logInfoToConsole=org.apache.log4j.ConsoleAppender
# Print info messages as lowest messages: (in other words: dont print debug messages)
log4j.appender.logInfoToConsole.threshold=INFO
log4j.appender.logInfoToConsole.layout=org.apache.log4j.PatternLayout
log4j.appender.logInfoToConsole.layout.ConversionPattern=${patternNormal}

#######################################################################
# the appender named logToFile will write to a file:
log4j.appender.logToFile=org.apache.log4j.RollingFileAppender
log4j.appender.logToFile.File=sokoban.log
log4j.appender.logToFile.MaxFileSize=20MB
# Keep one backup file
log4j.appender.logToFile.MaxBackupIndex=0

log4j.appender.logToFile.layout=org.apache.log4j.PatternLayout
log4j.appender.logToFile.layout.ConversionPattern=${patternNormal}

#######################################################################
# the appender with name logDebugToConsole will write on the console (but only info-messages and above):
log4j.appender.logDebugToConsole=org.apache.log4j.ConsoleAppender
# Print info messages as lowest messages: (in other words: dont print debug messages)
log4j.appender.logDebugToConsole.threshold=DEBUG
log4j.appender.logDebugToConsole.layout=org.apache.log4j.PatternLayout
log4j.appender.logDebugToConsole.layout.ConversionPattern=${patternNormal}


#######################################################################
#######################################################################
#				Pattern
#######################################################################
#######################################################################

# Define a pattern one time and use it (via "${patternName}" ) multiple times.
 
# Pattern to output:
#	date (in ISO8601 format)
#	Log-level (DEBUG INFO ect 
#		- for: left-aligned
#		5 for: everytimes five chars long
#	Thread-Name (in brackets)
#In curly brackets, seperated with colon:
#	Method-Name where the log-method was called (e.g. 'myRunInErrorMethod()')
#	File-Name where the log-method was called (e.g. 'test.java' )
#	Linenumber in file where the log-method was called
#just a '-' sign followed by:
#	The message
#	platform dependent line separator character or characters

# WARNING Generating caller location information is extremely slow. It's use should be avoided unless execution speed is not an issue.
# 		Caller location is filename, methodname, line number.
patternDetial=%d{ISO8601} %-5p [%t] (%F:%L %M) - %m%n
patternNormal=%d{ISO8601} %-5p [%t] %c - %m%n
