⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 log.c

📁 iscsi企业级target.很好用
💻 C
字号:
/* * Copyright (C) 2002-2003 Ardis Technolgies <roman@ardistech.com> * * Released under the terms of the GNU GPL v2.0. */#include <ctype.h>#include <stdarg.h>#include <stdio.h>#include <syslog.h>#include <sys/time.h>#include "iscsid.h"int log_daemon = 1;int log_level = 0;void log_init(void){	if (log_daemon)		openlog("iscsid", 0, LOG_DAEMON);}static void dolog(int prio, const char *fmt, va_list ap){	if (log_daemon)		vsyslog(prio, fmt, ap);	else {		struct timeval time;		gettimeofday(&time, NULL);		fprintf(stderr, "%ld.%06ld: ", time.tv_sec, time.tv_usec);		vfprintf(stderr, fmt, ap);		fprintf(stderr, "\n");		fflush(stderr);	}}void log_warning(const char *fmt, ...){	va_list ap;	va_start(ap, fmt);	dolog(LOG_WARNING, fmt, ap);	va_end(ap);}void log_error(const char *fmt, ...){	va_list ap;	va_start(ap, fmt);	dolog(LOG_ERR, fmt, ap);	va_end(ap);}void log_debug(int level, const char *fmt, ...){	if (log_level > level) {		va_list ap;		va_start(ap, fmt);		dolog(LOG_DEBUG, fmt, ap);		va_end(ap);	}}static void __dump_line(int level, unsigned char *buf, int *cp){	char line[16*3+5], *lp = line;	int i, cnt;	cnt = *cp;	if (!cnt)		return;	for (i = 0; i < 16; i++) {		if (i < cnt)			lp += sprintf(lp, " %02x", buf[i]);		else			lp += sprintf(lp, "   ");		if ((i % 4) == 3)			lp += sprintf(lp, " |");		if (i >= cnt || !isprint(buf[i]))			buf[i] =  ' ';	}	log_debug(level, "%s %.16s |", line, buf);	*cp = 0;}static void __dump_char(int level, unsigned char *buf, int *cp, int ch){	int cnt = (*cp)++;	buf[cnt] = ch;	if (cnt == 15)		__dump_line(level, buf, cp);}#define dump_line() __dump_line(level, char_buf, &char_cnt)#define dump_char(ch) __dump_char(level, char_buf, &char_cnt, ch)void log_pdu(int level, struct PDU *pdu){	unsigned char char_buf[16];	int char_cnt = 0;	unsigned char *buf;	int i;	return;	if (log_level <= level)		return;	buf = (void *)&pdu->bhs;	log_debug(level, "BHS: (%p)", buf);	for (i = 0; i < BHS_SIZE; i++)		dump_char(*buf++);	dump_line();	buf = (void *)pdu->ahs;	log_debug(level, "AHS: (%p)", buf);	for (i = 0; i < pdu->ahssize; i++)		dump_char(*buf++);	dump_line();	buf = (void *)pdu->data;	log_debug(level, "Data: (%p)", buf);	for (i = 0; i < pdu->datasize; i++)		dump_char(*buf++);	dump_line();}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -