ossp-pkg/l2/l2_test.c
1.5
/*
** L2 - OSSP Logging Library
** Copyright (c) 2001 The OSSP Project (http://www.ossp.org/)
** Copyright (c) 2001 Cable & Wireless Deutschland (http://www.cw.com/de/)
**
** This file is part of OSSP L2, a flexible logging library which
** can be found at http://www.ossp.org/pkg/l2/.
**
** Permission to use, copy, modify, and distribute this software for
** any purpose with or without fee is hereby granted, provided that
** the above copyright notice and this permission notice appear in all
** copies.
**
** THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED
** WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
** MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
** IN NO EVENT SHALL THE AUTHORS AND COPYRIGHT HOLDERS AND THEIR
** CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF
** USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
** ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
** OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT
** OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
** SUCH DAMAGE.
**
** l2_test.c: C API test suite
*/
#include <stdio.h>
#include "l2.h"
int main(int argc, char *argv[])
{
l2_channel_t* log_channel_buf;
l2_channel_t* log_channel_file;
l2_stream_t* log_stream;
/* Create the channel. */
setbuf(stdout, 0);
printf("Creating channel ... ");
log_channel_buf = l2_channel_create(&l2_handler_buffer);
log_channel_file = l2_channel_create(&l2_handler_file);
if ((log_channel_buf == 0) || (log_channel_file == 0))
{
fprintf(stderr, "Can't create my log channels!\n");
return 1;
}
printf("done\n");
l2_channel_configure(log_channel_buf, "size", 100);
l2_channel_configure(log_channel_file, "path", "myfilelog", "append",\
TRUE, "perm", 0x644);
l2_channel_open(log_channel_buf);
l2_channel_open(log_channel_file);
/* Create the stream and attach the channel to it. */
printf("Creating stream ... ");
log_stream = l2_stream_create();
if (log_stream == 0)
{
fprintf(stderr, "Can't create my log stream!\n");
return 1;
}
printf("done\n");
printf("Attaching channel to stream ... ");
if (!l2_stream_channel(log_stream, log_channel_buf, -1))
{
fprintf(stderr, "Can't attach buffer channel to log stream!\n");
return 1;
}
if (!l2_stream_channel(log_stream, log_channel_file, -1))
{
fprintf(stderr, "Can't attach file channel to log stream!\n");
return 1;
}
printf("done\n");
/* Log an example message. */
printf("Writing log message ... ");
l2_stream_log(log_stream, -1, "%cstream = 0x%lx, channel = 0x%lx%c\n", '"',\
log_stream, log_channel_buf, '"');
printf("done\n");
/* Clean up. */
printf("Destroying stream ... ");
l2_stream_destroy(log_stream);
printf("done\n");
return 0;
}