
        <html>
        <head>
        <meta http-equiv="content-type" content="text/html;charset=iso-8859-1">
        <title>Websh - Welcome</title>
        <script language="JavaScript" src="/websh/buttons.js"></script>
        <link href="websh.css" rel="styleSheet" type="text/css">
        <meta name="description" content="Websh - the rapid development environment to build powerful web applications.">
        <META NAME="keywords" CONTENT="websh, Websh, e-commerce, web application, apache, perl,  php, asp, cold fusion">
        </head>
    
        <body marginwidth="0" marginheight="0" topmargin="0" leftmargin="0"
        bgcolor="#ffffff" link="#006699" alink="red" vlink="#006699">
    
        <map name="grafik_navi">
        <area href="mailto:websh-user@tcl.apache.org" coords="94,2,154,26" shape="rect">
        <area href="/websh/" coords="4,2,64,26" shape="rect">
        <area href="/websh/contact.html" coords="184,2,244,26" shape="rect">
        </map>
        <table border="0" cellpadding="0" cellspacing="0" width="100%" height="76">
        <tr valign="top">
    
            <td width="500" bgcolor="#006699"><img height="50" width="300" src="/websh/images/grafik_navi_home.gif" alt="" border="0" usemap="#grafik_navi"><img height="50" width="200" src="/websh/images/grafik_index.gif" alt=""></td>
        
        <td><img height="50" width="270" src="/websh/images/logo.gif" alt="Websh"></td>
	<td width="5000" bgcolor="#000000">&nbsp;</td>
        </tr>
        <tr>
        <td width="500">
        <table border="0" cellpadding="0" cellspacing="0" width="500" height="40">
    
            <tr bgcolor="#006699">
            <td><a href="/websh/product.html"  onmouseover="swap('prod','b_prod_b')"  onmouseout="swap('prod','b_prod_a')"><img height="20"  width="120"  src="/websh/buttons/b_prod_a.gif"  name="prod" border="0" alt="product description"></a></td>
            <td><a href="/websh/docu.html"  onmouseover="swap('docu','b_docu_b')"  onmouseout="swap('docu','b_docu_a')"><img height="20"  width="100"  src="/websh/buttons/b_docu_a.gif"  name="docu" border="0" alt="documentation"></a></td>
            <td width="70"><br></td>
            <td><a href="/websh/resources.html"  onmouseover="swap('ress','b_ress_b')"  onmouseout="swap('ress','b_ress_a')"><img height="20"  width="110"  src="/websh/buttons/b_ress_a.gif"  name="ress" border="0" alt="resources and links"></a></td>
            <td><a href="/websh/download.html"  onmouseover="swap('down','b_down_b')"  onmouseout="swap('down','b_down_a')"><img height="20"  width="100"  src="/websh/buttons/b_down_a.gif"  name="down" border="0" alt="download"></a></td>
            </tr>
            <tr height="20">
            <td width="120" height="20"><img height="20" width="120" src="/websh/images/title.gif"></td>
            <td width="100" height="20"><img height="20" width="100" src="/websh/images/title.gif"></td>
            <td width="70" height="20"><img height="20" width="70" src="/websh/buttons/b_supp_c.gif"></td>
            <td width="110" height="20"><img height="20" width="110" src="/websh/images/title.gif"></td>
            <td width="100" height="20"><img height="20" width="100" src="/websh/images/title.gif"></td>
            </tr>
        
        </table>
        </td>
        <td><img height="40" width="270" src="/websh/images/logo_strich.gif"></td>
        </tr>
        </table>
    
    <table border="0" cellpadding="0" cellspacing="0" width="770">
    
        <tr height="30">
        <td width="10" valign="top"></td>
        <td width="150" height="30"></td>
        
                    <td width="455" height="30">
		    <h1>frequently asked questions</h1>
                    </td>
                    <td width="10" height="30"><br>
                    </td>
                    <td width="145" height="30">
		    &nbsp;
                    </td>
                
        </tr>
    
    <tr valign="top">
    
	<td width="10"><br></td>
        <td width="150">
        <table border="0" cellpadding="0" cellspacing="0" width="141">
        
        <tr valign="top">
        <td width="10"><img height="11" width="10" src="/websh/images/pfeil.gif"></td>
        <td class=nav>
        <a href="/websh/support.html"><b>support</b></a><br>
	
	<br></td></tr>
    
        
        <tr valign="top">
        <td width="10"><img height="11" width="10" src="/websh/images/pfeil.gif"></td>
        <td class=nav>
        <b>faq</b><br>
	
	    - <a href="/websh/faq.html#generic">generic questions</a><br>
	
	    - <a href="/websh/faq.html#technical">tech questions</a><br>
	
	<br></td></tr>
      
        <tr valign="top">
        <td width="10"><img height="11" width="10" src="/websh/images/pfeil.gif"></td>
        <td class=nav>
        <a href="/websh/subscribe.html"><b>mailing list</b></a><br>
	
	<br></td></tr>
    
        
        <tr valign="top">
        <td width="10"><img height="11" width="10" src="/websh/images/pfeil.gif"></td>
        <td class=nav>
        <a href="http://issues.apache.org/bugzilla/"><b>bug tracking system</b></a><br>
	
	<br></td></tr>
    
        </table>
        </td>
    
    <td width="455">
<a name="toc"></a><a name="generic"><h1>Contents</h1>

<p>
<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>
</p>
<p>
<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>
</p>

<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 AG, has been using it for years in many customer
projects, which typically are E-commerce shops or even electronic banking 
applications.
<p>
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 <a href="download.html">download area</a> 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.
<p>
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
customers.

<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.

<br><br>
A log level consists of a tag and a level, separated by a dot.
Possible levels are
<ul>
<li>alert</li>
<li>error</li>
<li>warning</li>
<li>info</li>
<li>debug</li>
</ul>
The tag is free text. Typically, it is the name of the application, 
say &quot;foo&quot;.

<br><br>
Before log messages can reach their destination, you have to
&quot;open up&quot; the log destination, in two steps:
<pre>
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
</pre>

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;.

<br><br>
Issuing a message is easy:
<pre>
web::log foo.info &quot;Hello, world !&quot;
</pre>

<p>
A sample logging setup for a script in mod_websh looks like this:

<pre>
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;
}

web::dispatch
</pre>

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.)
    </td>
  </tr>
  </table>

        <table border="0" cellpadding="0" cellspacing="0" width="770" height="45">
        <tr valign="top">
        <td colspan="2">
        <hr noshade size="1">
        </td>
        </tr>
        <tr valign="top">
        <td width="10"></td>
        <td width="760">
	<a href="/websh/product.html">description</a>&nbsp;|&nbsp;<a href="/websh/docu.html">documentation</a>&nbsp;|&nbsp;<span class="blue">support</span>&nbsp;|&nbsp;<a href="/websh/resources.html">resources</a>&nbsp;|&nbsp;<a href="/websh/download.html">download</a>&nbsp;|&nbsp;<a href="/websh/credits.html">credits</a>&nbsp;|&nbsp;<a href="/websh/copyright.html">copyright</a>
	</td></tr>
        <tr valign="top">
        <td colspan="2">
        <hr noshade size="1">
        </td>
        </tr>
        <tr valign="top">
        <td width="10"></td>
        <td width="760">
        <span class="klein"><b>&copy; Websh - an <a href="http://tcl.apache.org">Apache Tcl</a> project - part of the <a href="http://www.apache.org/">Apache Software Foundation</a></b></span></td>
        </tr>
        </table>
        </body>
        </html>
    