#
# pod - TurboGears 2 production environment configuration
#
# The %(here)s variable will be replaced with the parent directory of this file
#
[DEFAULT]
# WARGING == If debug is not set to false, you'll get the interactive
# debugger on production, which is a huge security hole.

debug = false
email_to = you@yourdomain.com
smtp_server = localhost
error_email_from = turbogears@localhost

[server:main]
use = egg:gearbox#wsgiref
host = 0.0.0.0
port = 8080

[sa_auth]
cookie_secret = ${app_instance_secret}

[app:main]
use = egg:pod
full_stack = true
cache_dir = %(here)s/data
beaker.session.key = pod
beaker.session.secret = ${app_instance_secret}
app_instance_uuid = ${app_instance_uuid}

# Auth type (internal or ldap)
auth_type = internal

# If you'd like to fine-tune the individual locations of the cache data dirs
# for the Cache data, or the Session saves, un-comment the desired settings
# here:
#beaker.cache.data_dir = %(here)s/data/cache
#beaker.session.data_dir = %(here)s/data/sessions
# Specify the database for SQLAlchemy to use via
# turbogears.database
# %(here) may include a ':' character on Windows environments; this can
# invalidate the URI when specifying a SQLite db via path name
sqlalchemy.url = sqlite:///%(here)s/somedb.db
sqlalchemy.echo = False

# This line ensures that Genshi will render xhtml when sending the
# output. Change to html or xml, as desired.
templating.genshi.method = xhtml

# WARNING: *THE LINE BELOW MUST BE UNCOMMENTED ON A PRODUCTION ENVIRONMENT*
# Debug mode will enable the interactive debugging tool, allowing ANYONE to
# execute malicious code after an exception is raised.
#set debug = false

# Logging configuration
# Add additional loggers, handlers, formatters here
# Uses python's logging config file format
# http://docs.python.org/lib/logging-config-fileformat.html

[loggers]
keys = root, pod, sqlalchemy, auth

[handlers]
keys = console

[formatters]
keys = generic

# If you create additional loggers, add them as a key to [loggers]
[logger_root]
level = INFO
handlers = console

[logger_pod]
level = INFO
handlers =
qualname = pod

[logger_sqlalchemy]
level = WARN
handlers =
qualname = sqlalchemy.engine
# "level = INFO" logs SQL queries.
# "level = DEBUG" logs SQL queries and results.
# "level = WARN" logs neither.  (Recommended for production systems.)

# A logger for authentication, identification and authorization
# This is repoze.who:
[logger_auth]
level = WARN
handlers =
qualname = auth

# If you create additional handlers, add them as a key to [handlers]
[handler_console]
class = StreamHandler
args = (sys.stderr,)
level = NOTSET
formatter = generic

# If you create additional formatters, add them as a key to [formatters]
[formatter_generic]
format = %(asctime)s,%(msecs)03d %(levelname)-5.5s [%(name)s] %(message)s
datefmt = %Y-%m-%d %H:%M:%S
