blob: 0fdb7c6f3ce93274fe6ed84b9a078bf2e6c500b8 [file] [log] [blame]
## $Id$
putHeader 3
web::putx {
<table border="0" cellpadding="0" cellspacing="0" width="770">
{headRow 4 "frequently asked questions"}
<tr valign="top">
{navbar_supp 1}
<td width="455">
<a name="toc"></a><a name="generic"><h1>Contents</h1>
<a href="#generic"><b>1 Generic Questions</b></a><br>
<a href="#whatis">1.1 What is Websh?</a><br>
<a href="#version">1.2 What is the current version?</a><br>
<a href="#price">1.3 What does Websh cost?</a><br>
<a href="#download">1.4 Where can I download Websh?</a><br>
<a href="#why">1.5 Why should I use Websh?</a><br>
<a href="#mailinglist">1.6 Is there a mailing list?</a><br>
<a href="#technical"><b>2 Technical Questions</b></a><br>
<a href="#logging">2.1 How do I use the logging facility?</a><br>
<a href="#mod_websh">2.2 How do I setup mod_websh?</a><br>
<a href="#apache">2.3 How do I configure mod_websh for Apache 1 or Apache 2 repectively?</a>
<a name="generic"></a><a href="#toc"><h1>1 Generic Questions</h1></a>
<a name="whatis"></a><a href="#toc"><h2>1.1 What is Websh?</h2></a>
Websh is a rapid development environment for building powerful and
reliable web applications. It is a standard Tcl extension and is
released as Open Source Software. Websh is versatile and handles
everything from HTML generation to data-base driven one-to-one page
customization. Netcetera has been using it for years in many customer
projects, which typically are E-commerce shops or even electronic banking
In addition, Websh provides mod_websh, an Apache module for the Apache 1.3
and Apache 2 web server.
<a name="version"></a><a href="#toc"><h2>1.2 What is the current version?</h2></a>
Currently, version 3.6 of Websh has been released as Beta (but fully working
version). Check the {pageLink download.html -show "download area"} to get the
latest version.
<a name="price"></a><a href="#toc"><h2>1.3 What does Websh cost?</h2></a>
Nothing. It's free. Websh is released as Open Source.
<a name="download"></a><a href="#toc"><h2>1.4 Where can I download Websh?</h2></a>
The latest release of Websh is available for download in the
<a href="download.html">download area</a> of this site.
<a name="why"></a><a href="#toc"><h2>1.5 Why should I use Websh?</h2></a>
In today's E-commerce environment, flexibility and short
time-to-market are key characteristics for successful
business. E-commerce, in other words, calls for a solid basis on which
applications can be built. For exactly this purpose we have designed
Websh helps you to create high-quality web applications with light
time constraints. It is fast, versatile, scalable, and easy to learn.
With Websh, you have a win-win situation for developers and
<a name="mailinglist"></a><a href="#toc"><h2>1.6 Is there a mailing list?</h2></a>
Sure. Visit the <a href="subscribe.html">subscribe</a> page on this site to get more information.
<a name="technical"></a><a href="#toc"><h1>2 Technical Questions</h1></a>
<a name="logging"></a><a href="#toc"><h2>2.1 How do I use the logging facility?</h2></a>
Before Websh sends a message to a log destination, the message
needs to pass two filters. That's why you need to specify a level when
you issue a log message. First, Websh decides whether or not to
handle the log message. Then, it scrolls through the list of
registered log destinations and compares the log message level against
the filter of each log destination. The message is sent to the log
destination only if the message passes the second filter.
A log level consists of a tag and a level, separated by a dot.
Possible levels are
The tag is free text. Typically, it is the name of the application,
say &quot;foo&quot;.
Before log messages can reach their destination, you have to
&quot;open up&quot; the log destination, in two steps:
web::loglevel add foo.warning-debug
web::logdest add foo.warning-info file foo_warn.log
web::logdest add foo.debug file foo_dbg.log
This sequence of commands tells Websh to handle all messages
in the range &quot;warning&quot; to &quot;debug&quot;, if the level string is
&quot;foo&quot;, and to discard any other messages. Messages of level
&quot;debug&quot; are then written to file &quot;foo_dbg.log&quot;, while
the other messages end up in file &quot;foo_warn.log&quot;.
Issuing a message is easy:
web::log &quot;Hello, world !&quot;
A sample logging setup for a script in mod_websh looks like this:
web::initializer \{
web::logdest add user.-debug file -unbuffered /tmp/test.log
web::logfilter add *.-debug
web::log info &quot;initializing interp&quot;
web::command default \{
web::log info &quot;command default call number [web::interpcfg numreq]&quot;
web::putx &quot;file /tmp/dummypage.html&quot;
web::finalizer \{
web::log info &quot;shutting down interp&quot;
This will setup logging when the interpreter is created (during the
first request it handles) and later, this logs can be used during the
requests. Note that only log levels and log destinations created in the
initializer code are accessible in the finalizer. Configurations created
during a request is discared when the rquest ends.
<a name="mod_websh"></a><a href="#toc"><h2>2.2 How do I setup mod_websh?</h2></a>
If you compile and install mod_websh, a sample setup for mod_websh is
also installed. Please refer to the README file in your installation directory.
<a name="apache"></a><a href="#toc"><h2>2.3 How do I configure mod_websh for Apache 1 or Apache 2 repectively?</h2></a>
Websh will automatically detect whether the header files of Apache 1 or
Apache 2 are present and compile accordingly. There is no manual change
needed to compile with a specific version. (However a compiled version will
only run with the Apache version it was compiled with.)
finishPage 3