]> CyberLeo.Net >> Repos - FreeBSD/stable/10.git/blob - contrib/subversion/subversion/svnserve/logger.h
MFC r275385 (by bapt):
[FreeBSD/stable/10.git] / contrib / subversion / subversion / svnserve / logger.h
1 /*
2  * logger.h : Public definitions for the Repository Cache
3  *
4  * ====================================================================
5  *    Licensed to the Apache Software Foundation (ASF) under one
6  *    or more contributor license agreements.  See the NOTICE file
7  *    distributed with this work for additional information
8  *    regarding copyright ownership.  The ASF licenses this file
9  *    to you under the Apache License, Version 2.0 (the
10  *    "License"); you may not use this file except in compliance
11  *    with the License.  You may obtain a copy of the License at
12  *
13  *      http://www.apache.org/licenses/LICENSE-2.0
14  *
15  *    Unless required by applicable law or agreed to in writing,
16  *    software distributed under the License is distributed on an
17  *    "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
18  *    KIND, either express or implied.  See the License for the
19  *    specific language governing permissions and limitations
20  *    under the License.
21  * ====================================================================
22  */
23
24 #ifndef LOGGER_H
25 #define LOGGER_H
26
27 #ifdef __cplusplus
28 extern "C" {
29 #endif /* __cplusplus */
30
31 #include "server.h"
32
33 \f
34
35 /* Opaque svnserve log file writer data structure.  Access to the log
36  * file will be serialized among threads within the same process.
37  */
38 typedef struct logger_t logger_t;
39
40 /* In POOL, create a writer object that will write log messages to stderr
41  * and return it in *LOGGER.  The log file will not add any buffering
42  * on top of stderr.
43  */
44 svn_error_t *
45 logger__create_for_stderr(logger_t **logger,
46                           apr_pool_t *pool);
47
48 /* In POOL, create a writer object for log file FILENAME and return it
49  * in *LOGGER.  The log file will be flushed & closed when POOL gets
50  * cleared or destroyed.
51  */
52 svn_error_t *
53 logger__create(logger_t **logger,
54                const char *filename,
55                apr_pool_t *pool);
56
57 /* Write the first LEN bytes from ERRSTR to the log file managed by LOGGER.
58  */
59 svn_error_t *
60 logger__write(logger_t *logger,
61               const char *errstr,
62               apr_size_t len);
63
64 /* Write a description of ERR with additional information from REPOSITORY
65  * and CLIENT_INFO to the log file managed by LOGGER.  REPOSITORY as well
66  * as CLIENT_INFO may be NULL.  If either ERR or LOGGER are NULL, this
67  * becomes a no-op.
68  */
69 void
70 logger__log_error(logger_t *logger,
71                   svn_error_t *err,
72                   repository_t *repository,
73                   client_info_t *client_info);
74
75 #ifdef __cplusplus
76 }
77 #endif /* __cplusplus */
78
79 #endif /* LOGGER_H */