diff options
Diffstat (limited to 'libssh/log.c')
-rw-r--r-- | libssh/log.c | 61 |
1 files changed, 61 insertions, 0 deletions
diff --git a/libssh/log.c b/libssh/log.c new file mode 100644 index 00000000..fbea05d8 --- /dev/null +++ b/libssh/log.c @@ -0,0 +1,61 @@ +/* + * Copyright 2008 Aris Adamantiadis + * + * This file is part of the SSH Library + * + * The SSH Library is free software; you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published by + * the Free Software Foundation; either version 2.1 of the License, or (at your + * option) any later version. + * + * The SSH Library is distributed in the hope that it will be useful, but + * WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY + * or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public + * License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with the SSH Library; see the file COPYING. If not, write to + * the Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, + * MA 02111-1307, USA. */ + + +/** \defgroup ssh_log SSH logging + * \brief Logging functions for debugging and problem resolving + */ +/** \addtogroup ssh_log + * @{ */ +#include "libssh/priv.h" +#include <stdio.h> +#include <stdarg.h> +#include <string.h> +/** \brief logs an event + * \param session the SSH session + * \param verbosity verbosity of the event + * \param format format string of the log entry + */ +void ssh_log(SSH_SESSION *session, int verbosity, char *format, ...){ + char buffer[1024]; + char buf2[256]; + int min; + va_list va; + if(verbosity <= session->log_verbosity){ + va_start(va,format); + vsnprintf(buffer,sizeof(buffer),format,va); + va_end(va); + if(session->options->log_function) + session->options->log_function(buffer,session,verbosity); + else if(verbosity==SSH_LOG_FUNCTIONS){ + if(session->log_indent > 255) + min=255; + else + min=session->log_indent; + memset(buf2,' ',min); + buf2[min]=0; + fprintf(stderr,"[func] %s%s\n",buf2,buffer); + } else { + fprintf(stderr,"[%d] %s\n",verbosity,buffer); + } + } +} + +/** @} */ |