#
#  Which page provider class to use.  Possibilities are:
#
#    RCSFileProvider for simple RCS-based file storage
#    FileSystemProvider for simple pure file storage with no version information
#
jspwiki.pageProvider = com.ecyrd.jspwiki.RCSFileProvider

#
#  Determines where wiki files are kept for
#  FileSystemProvider and RCSFileProvider
#
jspwiki.fileSystemProvider.pageDir = /home/jalkanen/Projects/JSPWiki/tests/wikipages

#
#  Special page references.
#
jspwiki.specialPage.RecentChanges = RecentChanges.jsp
jspwiki.specialPage.FindPage = Search.jsp

#
#  Configure logs.
#

#
#  Log only interesting stuff on screen.
#
log4j.appender.console = org.apache.log4j.ConsoleAppender
log4j.appender.console.Threshold = INFO

log4j.appender.console.layout = org.apache.log4j.PatternLayout
log4j.appender.console.layout.ConversionPattern = %-5p: %m%n

#
#  Log everything into a file.
#
log4j.appender.FileLog = org.apache.log4j.FileAppender
log4j.appender.FileLog.File = /tmp/jspwiki.log
log4j.appender.FileLog.layout = org.apache.log4j.PatternLayout
log4j.appender.FileLog.layout.ConversionPattern=%r [%t] %p %c %x - %m%n

log4j.rootCategory=DEBUG,FileLog,console

