-
Notifications
You must be signed in to change notification settings - Fork 2.3k
/
Log.java
159 lines (140 loc) · 4.9 KB
/
Log.java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
/*
* Copyright (c) 2002-2017 "Neo Technology,"
* Network Engine for Objects in Lund AB [http://neotechnology.com]
*
* This file is part of Neo4j.
*
* Neo4j is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* This program 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 General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
package org.neo4j.logging;
import java.util.function.Consumer;
import javax.annotation.Nonnull;
import javax.annotation.Nullable;
/**
* A log into which various levels of messages can be written
*/
public interface Log
{
/**
* @return true if the current log level enables debug logging
*/
boolean isDebugEnabled();
/**
* @return a {@link Logger} instance for writing debug messages
*/
@Nonnull
Logger debugLogger();
/**
* Shorthand for {@code debugLogger().log( message )}
*
* @param message The message to be written
*/
void debug( @Nonnull String message );
/**
* Shorthand for {@code debugLogger().log( message, throwable )}
*
* @param message The message to be written
* @param throwable An exception that will also be written
*/
void debug( @Nonnull String message, @Nonnull Throwable throwable );
/**
* Shorthand for {@code debugLogger().log( format, arguments )}
*
* @param format A string format for writing a message
* @param arguments Arguments to substitute into the message according to the format
*/
void debug( @Nonnull String format, @Nullable Object... arguments );
/**
* @return a {@link Logger} instance for writing info messages
*/
@Nonnull
Logger infoLogger();
/**
* Shorthand for {@code infoLogger().log( message )}
*
* @param message The message to be written
*/
void info( @Nonnull String message );
/**
* Shorthand for {@code infoLogger().log( message, throwable )}
*
* @param message The message to be written
* @param throwable An exception that will also be written
*/
void info( @Nonnull String message, @Nonnull Throwable throwable );
/**
* Shorthand for {@code infoLogger().log( format, arguments )}
*
* @param format A string format for writing a message
* @param arguments Arguments to substitute into the message according to the format
*/
void info( @Nonnull String format, @Nullable Object... arguments );
/**
* @return a {@link Logger} instance for writing warn messages
*/
@Nonnull
Logger warnLogger();
/**
* Shorthand for {@code warnLogger().log( message )}
*
* @param message The message to be written
*/
void warn( @Nonnull String message );
/**
* Shorthand for {@code warnLogger().log( message, throwable )}
*
* @param message The message to be written
* @param throwable An exception that will also be written
*/
void warn( @Nonnull String message, @Nonnull Throwable throwable );
/**
* Shorthand for {@code warnLogger().log( format, arguments )}
*
* @param format A string format for writing a message
* @param arguments Arguments to substitute into the message according to the format
*/
void warn( @Nonnull String format, @Nullable Object... arguments );
/**
* @return a {@link Logger} instance for writing error messages
*/
@Nonnull
Logger errorLogger();
/**
* Shorthand for {@code errorLogger().log( message )}
*
* @param message The message to be written
*/
void error( @Nonnull String message );
/**
* Shorthand for {@code errorLogger().log( message, throwable )}
*
* @param message The message to be written
* @param throwable An exception that will also be written
*/
void error( @Nonnull String message, @Nonnull Throwable throwable );
/**
* Shorthand for {@code errorLogger().log( format, arguments )}
*
* @param format A string format for writing a message
* @param arguments Arguments to substitute into the message according to the {@code format}
*/
void error( @Nonnull String format, @Nullable Object... arguments );
/**
* Used to temporarily log several messages in bulk. The implementation may choose to
* disable flushing, and may also block other operations until the bulk update is completed.
*
* @param consumer A consumer for the bulk {@link Log}
*/
void bulk( @Nonnull Consumer<Log> consumer );
}