https://github.com/matjaz99/simple-logger
Logger utility for java.
https://github.com/matjaz99/simple-logger
java logfile logging rolling-file-policy simplelogger
Last synced: 4 months ago
JSON representation
Logger utility for java.
- Host: GitHub
- URL: https://github.com/matjaz99/simple-logger
- Owner: matjaz99
- License: mit
- Created: 2014-10-06T23:47:52.000Z (over 11 years ago)
- Default Branch: master
- Last Pushed: 2024-08-07T18:13:17.000Z (almost 2 years ago)
- Last Synced: 2025-04-05T20:31:50.987Z (about 1 year ago)
- Topics: java, logfile, logging, rolling-file-policy, simplelogger
- Language: Java
- Size: 163 KB
- Stars: 0
- Watchers: 3
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE.md
Awesome Lists containing this project
README
# simple-logger
Logger utility for Java that is very simple to configure and use.
The last compiled jar file is in `dist` directory.
### Maven project
Build with maven:
```
mvn clean install
```
Simple-logger is not available on Maven central repo.
Download it and install it into local maven repository:
```
wget http://matjazcerkvenik.si/download/simple-logger-1.7.2.jar
mvn install:install-file -Dfile=simple-logger-1.7.2.jar -DgroupId=si.matjazcerkvenik.simplelogger -DartifactId=simple-logger -Dversion=1.7.2 -Dpackaging=jar
```
Add maven dependency in `pom.xml`:
```xml
si.matjazcerkvenik.simplelogger
simple-logger
1.7.2
```
### Usage
In Java create new `SimpleLogger` object, set filename and start logging immediately:
```java
SimpleLogger logger = new SimpleLogger("./test.log");
logger.info("Hello simple-logger!");
```
### Configuration
Simple-logger can be configured:
- directly in the code
- with properties file
- with environment variables
> All parameters are optional and have default values.
Parameters:
*filename* - Relative or absolute path to log file.
*level* - Log level. Supported log levels: TRACE, DEBUG, INFO, WARN, ERROR, FATAL
*append* - Set true to append text to file, or false to delete file first.
*verbose* - Also send text to standard output (console).
*maxFileSize* - Maximum size of log file in megabytes.
*maxBackupFiles* - Number of rolling files. Active log file has suffix .log while older log files get suffix .log.1. When new log file is created, the index of old log files are shifted and the last file is deleted.
*filePermissions* - Set POSIX file permissions on log file
*dateFormat* - Date format in Java compatible syntax, for example:
- yyyy.MM.dd hh:mm:ss:SSS
- EEE, MMM d, yy
- h:mm a
- yyyy-MM-dd'T'HH:mm:ss.SSS Z
#### Configuring inline
Create new object and set parameters.
```java
SimpleLogger logger = new SimpleLogger();
logger.setFilename("./test.log")
logger.setAppend(true);
logger.setLogLevel(LEVEL.INFO)
logger.setDateFormat("yyyy.MM.dd hh:mm:ss:SSS");
logger.setVerbose(true);
logger.setMaxSizeMb(10);
logger.setBackup(5);
logger.info("Hello simple-logger!");
```
#### Properties file
Prepare a `simplelogger.properties` file with parameters:
```
simplelogger.filename=./simple-logger.log
simplelogger.level=INFO
simplelogger.append=true
simplelogger.verbose=true
simplelogger.maxFileSize=1
simplelogger.maxBackupFiles=2
simplelogger.filepermissions=rw-r--r--
simplelogger.dateFormat=yyyy.MM.dd hh:mm:ss:SSS
```
Pass the properties to SimpleLogger when creating new object and start logging:
```java
Properties props = new Properties();
props.load(new FileInputStream("./simplelogger.properties"));
SimpleLogger logger = new SimpleLogger(props);
logger.info("Hello simple-logger!");
```
#### Environment variables
Set environment variables:
```
SIMPLELOGGER_FILENAME="./simple-logger.log"
SIMPLELOGGER_LEVEL="INFO"
SIMPLELOGGER_APPEND="true"
SIMPLELOGGER_VERBOSE="true"
SIMPLELOGGER_MAXFILESIZE="1"
SIMPLELOGGER_MAXBACKUPFILES="2"
SIMPLELOGGER_FILEPERMISSIONS="rw-r--r--"
SIMPLELOGGER_DATEFORMAT="yyyy.MM.dd hh:mm:ss:SSS"
```
Use empty constructor when creating new SimpleLogger object.
> Environment variables are always loaded first (if they exist, otherwise default values will apply). They can be overwritten by properties file or inline whenever is necessary.
```java
SimpleLogger logger = new SimpleLogger();
logger.info("Hello simple-logger!");
```
### Writing plain text
Simple-logger can also be used to write some text quickly in the file. Those days
when you are thinking about InputStreams and Readers and Buffers and are gone.
Call `write` method to write just plain text, whatever you like:
```java
logger.write("Just some text");
```
### Logging exceptions
Simple-logger can also log exception stacks:
```java
try {...}
catch (Exception e) {
logger.error("Exception is thrown: ", e);
}
```
### Closing streams
It is recommended to close the simple-logger output streams before stopping application:
```java
logger.close();
```
### Version history
1.7.2
- set posix permissions on log file
---
1.7.1
- a fix in write function when writing log without timestamp
---
1.7.0
- Refactored and a bit redesigned, but mostly refactored
- Support configuration with environment variables
---
1.6.4
- Added write(text) method where the text is written to log file without checking log level. Date and log level is also not printed. Just text.
---
1.6.3
- SimpleLogger implements Serializable
---
1.6.2
- create directories on path if they don't exist
---
1.6.1
- close file writer
...