| ## $Id$ |
| |
| startHtmlPage |
| startHtmlBody |
| 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> |
| |
| <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 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 {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. |
| <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 "foo". |
| |
| <br><br> |
| Before log messages can reach their destination, you have to |
| "open up" 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 "warning" to "debug", if the level string is |
| "foo", and to discard any other messages. Messages of level |
| "debug" are then written to file "foo_dbg.log", while |
| the other messages end up in file "foo_warn.log". |
| |
| <br><br> |
| Issuing a message is easy: |
| <pre> |
| web::log foo.info "Hello, world !" |
| </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 "initializing interp" |
| \} |
| |
| web::command default \{ |
| web::log info "command default call number [web::interpcfg numreq]" |
| web::putx "file /tmp/dummypage.html" |
| \} |
| |
| web::finalizer \{ |
| web::log info "shutting down interp" |
| \} |
| |
| 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> |
| } |
| |
| finishPage 3 |