X-Git-Url: http://sigaev.ru/git/gitweb.cgi?p=trinked.git;a=blobdiff_plain;f=tlog.h;fp=tlog.h;h=62cbb82e8040a9f867522113acf640036f2146fa;hp=0000000000000000000000000000000000000000;hb=2792e00e87c89cc11d9214733d6d52b127d15a07;hpb=5ccb9f10a0ef71a8b97934ca52123e763f455820 diff --git a/tlog.h b/tlog.h new file mode 100644 index 0000000..62cbb82 --- /dev/null +++ b/tlog.h @@ -0,0 +1,58 @@ +/* + * Copyright (c) 2004 Teodor Sigaev + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * 3. Neither the name of the author nor the names of any co-contributors + * may be used to endorse or promote products derived from this software + * without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY CONTRIBUTORS ``AS IS'' AND ANY EXPRESS + * 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 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. + */ + +#ifndef __TLOG_H__ +#define __TLOG_H__ + +#include +#include +#include + +#define TL_EXIT 0x70000000 +#define TL_CRIT 0 +#define TL_ALARM 1 +#define TL_WARN 2 +#define TL_INFO 3 +#define TL_DEBUG 4 + +#define TL_OPEN_SYSLOG 0x01 +#define TL_OPEN_STDERR 0x02 +#define TL_OPEN_FILE 0x04 + +void opentlog(u_int32_t flag, u_int32_t level, char *file); +void tlog(u_int32_t level,const char *format, ...); +void closetlog(); + +#ifdef ASSERT_CORE +#define tassert(e) ( (e) ? (void)0 : (tlog(TL_CRIT, "Assertion failed: %s, function %s, file %s, line %d.", #e, __func__, __FILE__, __LINE__), closetlog(), abort()) ) +#else +#define tassert(e) ( (e) ? (void)0 : (tlog(TL_CRIT|TL_EXIT, "Assertion failed: %s, function %s, file %s, line %d.", #e, __func__, __FILE__, __LINE__)) ) +#endif + +#endif