Logging¶
This page describes where 3forge Enterprise writes its logs, how those files rotate, and which properties control logging behavior.
Overview¶
3forge Enterprise writes several log streams into the log/ directory beneath the installation root. Application logging goes to a named log file, the process standard output and error streams are captured separately, and garbage collection output goes to its own file.
Log file names derive from the application name, so every file carries the AmiCore prefix. Rotation is handled at startup rather than by an external tool.
Log files¶
| File | Contents |
|---|---|
log/AmiCore.log |
Application log |
log/AmiCore.amilog |
AMI log |
log/AmiCore.stdout |
Process standard output |
log/AmiCore.stderr |
Process standard error |
log/gc.log |
Garbage collection output |
log/AmiCore.stats |
Runtime statistics, recorded every ami.amilog.stats.period. These are also what OpenTelemetry export sends to a collector |
The startup banner, the JVM version, the applied JVM options, the classpath, and the main class are all written to the standard output log before the process starts, which makes that file the first place to look when a start fails.
Rotation¶
Ten generations of each stream are retained. Rotated files carry a numeric suffix:
| Pattern | Stream |
|---|---|
log/AmiCore%nnnn.stdout |
Standard output |
log/AmiCore.%nnnn.stderr |
Standard error |
log/AmiCore%nnnn.gc |
Garbage collection |
log/AmiCore.%nnnn.stats |
Runtime statistics. The number kept is set by ami.amilog.stats.retention.count, and the oldest is deleted at each start |
Rotation happens when the process starts, not on a size or time trigger. A long-running instance therefore accumulates output in a single file until it is restarted, so size the filesystem for the interval between restarts rather than for a rotation period.
Properties¶
- Default:
- Description:
-
- The base name used for log files. Changing it renames
AmiCore.logandAmiCore.amilog, and changes the prefix on the rotated standard output, standard error, and garbage collection files.
- The base name used for log files. Changing it renames
- Default:
- Description:
-
- Whether incoming and outgoing messages on realtime connections are logged by default.
- Leaving this enabled on a high-throughput instance produces substantial log volume.
- Default:
- Description:
-
- How often runtime statistics are recorded to
log/AmiCore.stats. - Also how often OpenTelemetry export sends, when it is turned on.
- How often runtime statistics are recorded to
- Default:
- Description:
-
- How often operating-system and filesystem statistics are recorded.
ami.amilog.stats.retention.count
- Default:
- Description:
-
- How many rotated statistics files are kept. At each start the files move up one number and the oldest beyond this count is deleted, so copy them elsewhere before restarting to keep older history.
AmiScript session logging¶
Calls to session.log(...) and session.warn(...) in AmiScript are not logged by default. Two speedlogger streams enable them, both supplied commented out in config/defaults.properties:
Uncomment the streams you need in config/local.properties rather than editing the shipped defaults file.
Gateway logging¶
The Gateway adds two logging properties of its own, covered in Gateway Configuration:
ami.gateway.log.messagesami.gateway.log.stats.period.millis