ldma_log.c revision 49bfb42b00abac0958a1308f4233e366fd083366
49bfb42b00abac0958a1308f4233e366fd083366Alexandre Chartre * CDDL HEADER START
49bfb42b00abac0958a1308f4233e366fd083366Alexandre Chartre * The contents of this file are subject to the terms of the
49bfb42b00abac0958a1308f4233e366fd083366Alexandre Chartre * Common Development and Distribution License (the "License").
49bfb42b00abac0958a1308f4233e366fd083366Alexandre Chartre * You may not use this file except in compliance with the License.
49bfb42b00abac0958a1308f4233e366fd083366Alexandre Chartre * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
49bfb42b00abac0958a1308f4233e366fd083366Alexandre Chartre * or http://www.opensolaris.org/os/licensing.
49bfb42b00abac0958a1308f4233e366fd083366Alexandre Chartre * See the License for the specific language governing permissions
49bfb42b00abac0958a1308f4233e366fd083366Alexandre Chartre * and limitations under the License.
49bfb42b00abac0958a1308f4233e366fd083366Alexandre Chartre * When distributing Covered Code, include this CDDL HEADER in each
49bfb42b00abac0958a1308f4233e366fd083366Alexandre Chartre * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
49bfb42b00abac0958a1308f4233e366fd083366Alexandre Chartre * If applicable, add the following below this CDDL HEADER, with the
49bfb42b00abac0958a1308f4233e366fd083366Alexandre Chartre * fields enclosed by brackets "[]" replaced with your own identifying
49bfb42b00abac0958a1308f4233e366fd083366Alexandre Chartre * information: Portions Copyright [yyyy] [name of copyright owner]
49bfb42b00abac0958a1308f4233e366fd083366Alexandre Chartre * CDDL HEADER END
49bfb42b00abac0958a1308f4233e366fd083366Alexandre Chartre * Copyright 2009 Sun Microsystems, Inc. All rights reserved.
49bfb42b00abac0958a1308f4233e366fd083366Alexandre Chartre * Use is subject to license terms.
49bfb42b00abac0958a1308f4233e366fd083366Alexandre Chartre * Logging support for the LDoms Agent daemon
49bfb42b00abac0958a1308f4233e366fd083366Alexandre Chartrestatic char *log_prio_str[] = {
49bfb42b00abac0958a1308f4233e366fd083366Alexandre Chartre * Generate a timestamp string in the provided buffer.
49bfb42b00abac0958a1308f4233e366fd083366Alexandre Chartre * If any errors are encountered, the function returns
49bfb42b00abac0958a1308f4233e366fd083366Alexandre Chartre * with the buffer containing an empty string.
49bfb42b00abac0958a1308f4233e366fd083366Alexandre Chartre (void) fprintf(stderr, "gettimeofday failed: %s\n",
49bfb42b00abac0958a1308f4233e366fd083366Alexandre Chartre if (localtime_r(&now.tv_sec, <ime) == NULL) {
49bfb42b00abac0958a1308f4233e366fd083366Alexandre Chartre (void) fprintf(stderr, "localtime_r failed: %s\n",
49bfb42b00abac0958a1308f4233e366fd083366Alexandre Chartre if (strftime(buf, buflen, "%b %e %T ", <ime) == 0) {
49bfb42b00abac0958a1308f4233e366fd083366Alexandre Chartre (void) fprintf(stderr, "strftime failed: buffer[%d] too "
49bfb42b00abac0958a1308f4233e366fd083366Alexandre Chartre * On failure, the contents of the buffer
49bfb42b00abac0958a1308f4233e366fd083366Alexandre Chartre * are indeterminate. Restore it to a known
49bfb42b00abac0958a1308f4233e366fd083366Alexandre Chartre * state before returning.
49bfb42b00abac0958a1308f4233e366fd083366Alexandre Chartreldma_log_msg(int prio, char *module, char *fmt, va_list vap)
49bfb42b00abac0958a1308f4233e366fd083366Alexandre Chartre /* generate a timestamp for the SMF log */
49bfb42b00abac0958a1308f4233e366fd083366Alexandre Chartre ldma_timestamp(timebuf, sizeof (timebuf));
49bfb42b00abac0958a1308f4233e366fd083366Alexandre Chartre /* LINTED E_SEC_PRINTF_VAR_FMT */
49bfb42b00abac0958a1308f4233e366fd083366Alexandre Chartre (void) vsnprintf(msgbuf, LDMA_MAX_MSG_LEN, fmt, vap);
49bfb42b00abac0958a1308f4233e366fd083366Alexandre Chartre * Print the message to stderr. In daemon mode, it
49bfb42b00abac0958a1308f4233e366fd083366Alexandre Chartre * will be sent to the SMF log. In standalone mode,
49bfb42b00abac0958a1308f4233e366fd083366Alexandre Chartre * it will be sent to the controlling terminal.
49bfb42b00abac0958a1308f4233e366fd083366Alexandre Chartre (void) fprintf(stderr, "%s%s.%s: %s\n", timebuf, module,
49bfb42b00abac0958a1308f4233e366fd083366Alexandre Chartre /* LINTED E_SEC_PRINTF_VAR_FMT */
49bfb42b00abac0958a1308f4233e366fd083366Alexandre Chartre /* not debugging */