1478
Comment:
|
3832
|
Deletions are marked like this. | Additions are marked like this. |
Line 2: | Line 2: |
If you experience problems that you think are related to '''SVNKit''', it is always a good idea to post a bug report into [http://svnkit.com/tracker/ SVNKit Issue Tracker]. To provide more information with the bug report, please consider attaching '''SVNKit''' log file to it. Below you will find detailed instructions on how to get '''SVNKit''' log files. | If you experience problems that you think are related to [[SVNKit]], it is always a good idea to post a bug report into [[http://svnkit.com/tracker/|SVNKit Issue Tracker]]. To provide more information with the bug report, please consider attaching [[SVNKit]] log file to it. Below you will find detailed instructions on how to get [[SVNKit]] log files. |
Line 4: | Line 4: |
<<Anchor(debug_logs)>> | |
Line 5: | Line 6: |
By default '''SVNKit''' operations logging is switched off. To enable it, you should replace the contents of the {{{JAVA_HOME/jre/lib/logging.properties}}} file with the contents of the {{{logging.properties.disabled}}} file that you can find in your "standalone" archive or in the {{{svnkit/cli/}}} directory in case you've checked out the '''SVNKit''' sources. Or when launching the Java VM you can use the following system property: | By default [[SVNKit]] operations logging is switched off. To enable it, you should replace the contents of the {{{JAVA_HOME/jre/lib/logging.properties}}} file with the contents of the {{{logging.properties.disabled}}} file that you can find in your "standalone" archive or in the {{{svnkit/cli/}}} directory in case you've checked out the [[SVNKit]] sources. Or when launching the Java VM you can use the following system property: |
Line 16: | Line 17: |
You may find an '''SVNKit''' log file in the {{{USER_HOME/.svnkit}}} directory, for example {{{USER_HOME/.svnkit/.svnkit.0.0.log}}}. | You may find an [[SVNKit]] log file at {{{USER_HOME/svnkit.0.log}}}. |
Line 18: | Line 19: |
== Setting a custom logger (for debug logging) == When you're using [[SVNKit]] in your application it is not always an option to let [[SVNKit]] use JDK logging API. Instead you may like to have a fine-grained control over the way [[SVNKit]] logs its operations. The solution is to provide [[SVNKit]] with a custom logger class that should extend the [[http://svn.svnkit.com/repos/svnkit/trunk/svnkit/src/org/tmatesoft/svn/util/SVNDebugLogAdapter.java|SVNDebugLogAdapter]] class. The code below demonstrates how it could be done. {{{#!java ... import org.tmatesoft.svn.util.SVNDebugLog; import org.tmatesoft.svn.util.SVNDebugLogAdapter; ... /* * Set up your logger */ public static void initSVNKitLogger() { SVNDebugLog.setLogger(new CustomSVNKitLogger()); } private static class CustomSVNKitLogger extends SVNDebugLoggerAdapter { /* Override superclass methods to redirect logging * as you wish. Superclass implementaion is empty, i.e. * all log messages are swallowed. */ public void log(String message, byte[] data) { /* * Used to log all data received or transmitted * over network */ ... } public void logInfo(String message) { /* * Used to log information messages */ ... } public void logError(String message) { /* * Used to log error messages */ ... } public void logInfo(Throwable th) { /* * Used to log information on exceptions */ ... } public void logError(Throwable th) { /* * Used to log exceptions */ ... } } ... initSVNKitLogger(); ... }}} Note: One have to set up a custom logger before any other calls are made to [[SVNKit]], otherwise default logging will be used - i.e. [[http://svn.svnkit.com/repos/svnkit/trunk/svnkit/src/org/tmatesoft/svn/core/internal/util/DefaultSVNDebugLogger.java|DefaultSVNDebugLogger]]. The [[#debug_logs|first section]] gives information how to obtain its log files. |
Logging SVNKit operations
If you experience problems that you think are related to SVNKit, it is always a good idea to post a bug report into SVNKit Issue Tracker. To provide more information with the bug report, please consider attaching SVNKit log file to it. Below you will find detailed instructions on how to get SVNKit log files.
SVNKit is used as a library in a standalone application
By default SVNKit operations logging is switched off. To enable it, you should replace the contents of the JAVA_HOME/jre/lib/logging.properties file with the contents of the logging.properties.disabled file that you can find in your "standalone" archive or in the svnkit/cli/ directory in case you've checked out the SVNKit sources. Or when launching the Java VM you can use the following system property:
$java -Djava.util.logging.config.file=path/to/logging.properties.disabled
The logging.properties.disabled file contains a system property called svnkit.level which is used to control the log level. Up to your needs you can specify the following values for that property:
- FINE(default) - the level for not detailed logging
- FINER - the level for more detailed logging
- FINEST - the level for full logging
You may find an SVNKit log file at USER_HOME/svnkit.0.log.
Setting a custom logger (for debug logging)
When you're using SVNKit in your application it is not always an option to let SVNKit use JDK logging API. Instead you may like to have a fine-grained control over the way SVNKit logs its operations. The solution is to provide SVNKit with a custom logger class that should extend the SVNDebugLogAdapter class. The code below demonstrates how it could be done.
1 ...
2 import org.tmatesoft.svn.util.SVNDebugLog;
3 import org.tmatesoft.svn.util.SVNDebugLogAdapter;
4 ...
5
6 /*
7 * Set up your logger
8 */
9 public static void initSVNKitLogger() {
10 SVNDebugLog.setLogger(new CustomSVNKitLogger());
11 }
12
13 private static class CustomSVNKitLogger
14 extends SVNDebugLoggerAdapter {
15 /* Override superclass methods to redirect logging
16 * as you wish. Superclass implementaion is empty, i.e.
17 * all log messages are swallowed.
18 */
19
20
21 public void log(String message, byte[] data) {
22 /*
23 * Used to log all data received or transmitted
24 * over network
25 */
26 ...
27 }
28
29 public void logInfo(String message) {
30 /*
31 * Used to log information messages
32 */
33 ...
34 }
35
36 public void logError(String message) {
37 /*
38 * Used to log error messages
39 */
40 ...
41 }
42
43 public void logInfo(Throwable th) {
44 /*
45 * Used to log information on exceptions
46 */
47 ...
48 }
49
50 public void logError(Throwable th) {
51 /*
52 * Used to log exceptions
53 */
54 ...
55 }
56 }
57 ...
58 initSVNKitLogger();
59 ...
Note: One have to set up a custom logger before any other calls are made to SVNKit, otherwise default logging will be used - i.e. DefaultSVNDebugLogger. The first section gives information how to obtain its log files.