]>
Commit | Line | Data |
---|---|---|
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 | */ | |
20 | GIT_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 | */ | |
26 | typedef 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 | 52 | typedef 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 | 63 | GIT_EXTERN(int) git_trace_set(git_trace_level_t level, git_trace_cb cb); |
b5ec5430 ET |
64 | |
65 | /** @} */ | |
66 | GIT_END_DECL | |
67 | #endif |