Desktop Sync can generate a lot of debug information or error level logging information.
The log output configuration contains two sections.
Use the first section to setup the log location, default logging level, formatting, rotation, and compression.
Here is a sample logging configuration section:
# Logging
logging.loggers.root.channel = c1
logging.loggers.root.level = error
logging.channels.c1.class = FileChannel
logging.channels.c1.path = ${alfresco.configDir}/AlfrescoDesktopSync.log
logging.channels.c1.formatter.class = PatternFormatter
logging.channels.c1.formatter.pattern = %Y-%m-%d %H:%M:%S.%c %N[%P]:%s:%q:%t
logging.channels.c1.rotation=daily
logging.channels.c1.compress=true
logging.channels.c1.purgeAge=7 days
logging.channels.c1.archive=timestamp
logging.formatters.f1.class = PatternFormatter
#logging.formatters.f1.formatter.pattern = %Y-%m-%d %H:%M:%S.%c %N[%P]:%s:%q:%t
logging.formatters.f1.times = UTC
This logging configuration will create a log file called AlfrescoDesktopSync.log in the following folder:
- Windows: <userHome>\AppData\Local\Alfresco
- Mac: ~/Library/Application Support/Alfresco
The log files are rotated daily and the old log files are compressed. Only the last 7 days of log files are kept.
Use the later section of the log output configuration to enable debug output from different components of Desktop Sync. This is done by configuring individual logging levels as shows below:
logging.loggers.l<n>.name = <logging level name> logging.loggers.l<n>.level = <debug|error>
where <n> is an ascending index number starting at one. Both the configuration lines must use the same index number.
The available debug logging levels are:
| Debug logging level | Description |
|---|---|
| AccountSetup | Account setup, create/remove sync targets |
| AlfrescoAPI | Alfresco API calls |
| AlfrescoFileStoreMonitor | Remote file system event polling |
| CMISAPI | CMIS API calls |
| CMISFileStore | Remote file I/O |
| CMISFilter | Repository node type/aspect filters |
| CMISObjectCache | CMIS objects cache |
| DeferredCheckSyncPattern | Deferred files special handling |
| DeleteAddSyncPattern | Delete/add (drag/drop cut/paste) local event special handling |
| DeleteRenameSyncPattern | Delete/rename local event special handling |
| DeviceRegAPI | Device registration API calls |
| DirectoryWatcher | Low level local file system event handling |
| DirRouter | Routing of local file system events |
| DumpJSON | JSON request responses |
| KeychainAPI | MacOS keychain access |
| LibCURLAPI | LibCurl low level HTTP network I/O processing |
| LocalFileStore | Local file I/O |
| LocalSyncScanner | Sync manager startup local sync area scanner |
| PocoSQLiteDB | Sync database access |
| RenameShuffleSyncPattern | MS Office rename/shuffle local event special handling |
| RESTAPI | Base REST API processing |
| SharedWin32FileStoreMonitorSharedMacOSXFileStoreMonitor | Local file system monitoring |
| SyncChecker | Consistency checker |
| SyncClientAPI | Shell extension to sync client application calls |
| SyncConstraint | File/folder name/extension constraints |
| SyncEventManager | Event queue manager |
| SyncManager | The top level sync component |
| SyncServiceAPI | Sync Service API calls |
| SyncServiceRouter | Shared synchronization service polling/event routing |
| SyncTarget | Handles the connection between a single local/remote folder |
| SyncUI | Desktop Sync UI configuration properties |
| TargetDelete | Sync target delete parent folder special handling |
| TargetMoveToFrom | Move files/folders between sync targets special handling |
| TargetRename | Sync target parent folder rename special handling |
| WaterMark | File watermarking (not currently used) |
Here’s a sample Desktop Sync logging configuration:
# Logging
logging.loggers.root.channel = c1
logging.loggers.root.level = error
logging.channels.c1.class = FileChannel
logging.channels.c1.path = ${alfresco.configDir}/AlfrescoDesktopSync.log
logging.channels.c1.formatter.class = PatternFormatter
logging.channels.c1.formatter.pattern = %Y-%m-%d %H:%M:%S.%c %N[%P]:%s:%q:%t
logging.channels.c1.rotation=daily
logging.channels.c1.compress=true
logging.channels.c1.purgeAge=7 days
logging.channels.c1.archive=timestamp
logging.formatters.f1.class = PatternFormatter
#logging.formatters.f1.formatter.pattern = %Y-%m-%d %H:%M:%S.%c %N[%P]:%s:%q:%t
logging.formatters.f1.times = UTC
logging.loggers.l1.name = SyncManager
logging.loggers.l1.level = debug
logging.loggers.l2.name = SyncTarget
logging.loggers.l2.level = debug
logging.loggers.l3.name = DirectoryWatcher
logging.loggers.l3.level = error
logging.loggers.l4.name = SharedMacOSXFileStoreMonitor
logging.loggers.l4.level = error
logging.loggers.l5.name = CMISAPI
logging.loggers.l5.level = error
logging.loggers.l6.name = PocoSQLiteDB
logging.loggers.l6.level = error
For more details on the logging configuration, see the PocoProject documentation.