Files changed (5)
- <p>We've been notified about this issue and we'll take a look at it shortly. Start over right <a href="./">here</a>.</p>
+ <a href="<%=(setf *link* (web-root "bar" (find "newLISP" SERVER_SOFTWARE)))%>"><%=(string "http://" HTTP_HOST *link*)%></a>
+ Dragonfly uses the <span class="code">DF:display-error</span> function to show these pages. You can too! Here's a quick example of how to use it:
+ By default Dragonfly does not show that fancy page you just saw, instead it stores a default (and boring) error template in the symbol <span class="code">DF:ERROR_TEMPLATE</span>, which it will use to display all errors if it can't find an alternative:
+ Dragonfly will check inside <span class="code">VIEW_PATHS</span> to see if a view with the error number exists. In other words, a call to <span class="code">(display-error 500)</span> results in a check for:
+ <p><a href="<%=(web-root "wings/3" (find "newLISP" SERVER_SOFTWARE))%>">I thought you'd never ask.</a></p>
+ Dragonfly defines an error handler <span class="code">DF:error-handler</span>, that's called whenever an error is generated (for example, by a call to <span class="code">throw-error</span>). You can specify your own handler with a <%(link_to "plugin" "dragonfly_plugins")%>.
+ The default handler makes use of Dragonfly's logging functions to log the stack-trace to the file specified by <span class="code">LOG_FILE_PATH</span> in <b>config.lsp</b>, and then it will call <span class="code">(display-error 500)</span>.
+ If you don't want to publicly show the stack trace in your error 500 template, you don't have to. Just remember to check the log for it. You'll probably also want to setup a <a href="http://en.wikipedia.org/wiki/Cron">cron</a> script roll over the log every now and then to prevent it from getting too large.
+ Dragonfly's logging facilities are defined <b>dragonfly-framework/lib/log.lsp</b>, check <%(link_to "the api" "dragonfly_api")%> for more info.