]> git.proxmox.com Git - libgit2.git/blame - include/git2/trace.h
New upstream version 1.1.0+dfsg.1
[libgit2.git] / include / git2 / trace.h
CommitLineData
b5ec5430
ET
1/*
2 * Copyright (C) the libgit2 contributors. All rights reserved.
3 *
4 * This file is part of libgit2, distributed under the GNU GPL v2 with
5 * a Linking Exception. For full terms see the included COPYING file.
6 */
7#ifndef INCLUDE_git_trace_h__
8#define INCLUDE_git_trace_h__
9
10#include "common.h"
11#include "types.h"
12
13/**
14 * @file git2/trace.h
15 * @brief Git tracing configuration routines
16 * @defgroup git_trace Git tracing configuration routines
17 * @ingroup Git
18 * @{
19 */
20GIT_BEGIN_DECL
21
22/**
23 * Available tracing levels. When tracing is set to a particular level,
24 * callers will be provided tracing at the given level and all lower levels.
25 */
26typedef enum {
27 /** No tracing will be performed. */
28 GIT_TRACE_NONE = 0,
29
30 /** Severe errors that may impact the program's execution */
31 GIT_TRACE_FATAL = 1,
32
33 /** Errors that do not impact the program's execution */
34 GIT_TRACE_ERROR = 2,
1fed6b07 35
b5ec5430
ET
36 /** Warnings that suggest abnormal data */
37 GIT_TRACE_WARN = 3,
38
39 /** Informational messages about program execution */
40 GIT_TRACE_INFO = 4,
41
42 /** Detailed data that allows for debugging */
43 GIT_TRACE_DEBUG = 5,
44
45 /** Exceptionally detailed debugging data */
46 GIT_TRACE_TRACE = 6
47} git_trace_level_t;
48
49/**
50 * An instance for a tracing function
51 */
22a2d3d5 52typedef void GIT_CALLBACK(git_trace_cb)(git_trace_level_t level, const char *msg);
b5ec5430
ET
53
54/**
55 * Sets the system tracing configuration to the specified level with the
56 * specified callback. When system events occur at a level equal to, or
57 * lower than, the given level they will be reported to the given callback.
58 *
59 * @param level Level to set tracing to
60 * @param cb Function to call with trace data
61 * @return 0 or an error code
62 */
22a2d3d5 63GIT_EXTERN(int) git_trace_set(git_trace_level_t level, git_trace_cb cb);
b5ec5430
ET
64
65/** @} */
66GIT_END_DECL
67#endif