Home Software Blog Wallpapers Webtools
A HelloWorld with Apache commons, Gradle and Log4J
Tuesday 25, August 2015   |   Post link   |   Sample code  Download related material

What I am going to do here is create a simple HelloWorld application with a few lines which get logged using Apache-commons logging facade and Log4J providing the actual logging implementation. The sample assumes that you have JDK 1.7+ and Gradle installed correctly on your system.

My working directory will be /home/siddharth/Temp/GradleTest. All files and folders mentioned will be created within this directory. For this project, I will use the standard folder structure required by Gradle. The following folders need to be created under GradleTest:

+- src
     +- main
          +- java
          +- resources

Let's create the build.gradle file under GradleTest directory which will be used by Gradle to build the project. The contents of this file is:

apply plugin: 'java'
dependencies {
	compile 'log4j:log4j:1.2.17'
	compile 'commons-logging:commons-logging:1.2'
jar {
	from { configurations.compile.collect { it.isDirectory() ? it : zipTree(it) } }
	manifest {
		attributes 'Main-Class': 'Sample'

The java-plugin supports a number of tasks which are mentioned here. Now that we have the instructions for gradle ready lets create the HelloWorld program.

Create a file named 'Sample.java' within GradleTest/src/main/java. The content of this file is:

import java.lang.*;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;

public class Sample {
	final static Log logger = LogFactory.getLog(Sample.class);
	public static void main(String[] args) {
		logger.debug("main start");	
		System.out.println("Hello Siddharth");
		logger.debug("main end");

Create a text file named 'log4j.properties' in the GradleTest/src/main/resources directory. This file is used to configure the behavior of Log4J. The content of this file is below:

# Root logger option
log4j.rootLogger=DEBUG, stdout, file

# Redirect log messages to console
log4j.appender.stdout.layout.ConversionPattern=%d{yyyy-MM-dd HH:mm:ss} %-5p %c{1}:%L - %m%n

# Redirect log messages to a log file, support file rolling.
log4j.appender.file.layout.ConversionPattern=%d{yyyy-MM-dd HH:mm:ss} %-5p %c{1}:%L - %m%n
We are now all set to build the project. Open a terminal window (command prompt in Windows). Navigate to the GradleTest folder, for me this is /home/siddharth/Temp/GradleTest. Type in:
gradle assemble

This will build the project. Since we have mentioned Apache-commons and Log4J as dependencies, these will be downloaded as part of the build process; you'll need to be connected to the WWW. The output of the build process should look something like this:

Lets now test if everything got built as it should have by running the code. While in the GradleTest directory, type in:
> java -cp build/libs -jar build/libs/GradleTest.jar

You should see the output of the program.

Sample code  Download related material


Posts By Year

2022 (8)
2021 (5)
2020 (12)
2019 (6)
2018 (8)
2017 (11)
2016 (6)
2015 (18)
2014 (2)
2013 (4)
2012 (2)

Posts By Category

.NET (4)
.NET Core (2)
AWS (4)
AWS API Gateway (1)
Android (1)
Apache Camel (1)
Architecture (1)
Azure (2)
Book review (3)
Business (1)
C# (3)
C++ (2)
CloudHSM (1)
Containers (4)
Corporate culture (1)
Database (3)
Database migration (1)
Desktop (1)
Docker (1)
DotNet (2)
DotNet Core (2)
Entity Framework (3)
Git (2)
IIS (1)
JDBC (1)
Java (9)
Kubernetes (1)
Lambda (1)
Learning (1)
Life (7)
Linux (1)
Lucene (1)
Multi-threading (1)
OData (1)
Office (1)
PHP (1)
Photography (1)
PowerShell (2)
Programming (27)
Rants (5)
SQL (2)
SQL Server (1)
Security (2)
Software Engineering (1)
Software development (1)
Solr (1)
Sql Server (2)
Storage (1)
T-SQL (1)
TDD (1)
TSQL (5)
Tablet (1)
Technology (1)
Test Driven (1)
Unit Testing (1)
Unit Tests (1)
Utilities (3)
VC++ (1)
VMWare (1)
VSCode (1)
Visual Studio (2)
Wallpapers (1)
Web API (2)
Win32 (1)
Windows (9)
XML (2)

Posts By Tags

.NET(6) API Gateway(1) ASP.NET(4) AWS(2) Adults(1) Advertising(1) Android(1) Anti-forgery(1) Asynch(1) Authentication(2) Azure(2) Backup(1) Beliefs(1) BlockingQueue(1) Book review(2) Books(1) Busy(1) C#(4) C++(3) CLR(1) CORS(1) CSRF(1) CTE(1) Callbacks(1) Camel(1) Certificates(1) Checkbox(1) CloudHSM(1) Cmdlet(1) Commons(1) Company culture(1) Complexity(1) Consumer(1) Consumerism(1) Containers(3) Core(2) Custom(2) DPI(1) Data-time(1) Database(4) Debugging(1) Delegates(1) Developer(2) Dockers(2) DotNetCore(3) EF 1.0(1) Elastic Search(1) Encrypted(1) Entity framework(1) Events(1) File copy(1) File history(1) Font(1) Git(2) GradleApache(1) HierarchyID(1) IIS(1) Installing(1) Intelli J(1) JDBC(1) JSON(1) JUnit(1) JWT(1) Java(2) JavaScript(1) Kubernetes(1) Life(1) LinkedIn(1) Linux(1) Localization(1) Log4J(2) Log4J2(1) Lucene(1) MVC(4) Management(2) Migration history(1) Mobile Apps(1) Modern Life(1) Money(1) NGINX(1) NTFS(1) NUnit(2) OData(1) OPENXML(1) Objects(1) Office(1) OpenCover(1) Organization(1) PHP(1) Paths(1) PowerShell(2) Producer(1) Programming(1) Python(2) Quality(1) REDIS(2) REST(1) Runtimes(1) S3-Select(1) SD card(1) SLF4J(1) SQL(2) SQL Code-first Migration(1) SSH(2) Sattelite assemblies(1) School(1) Secrets Manager(1) Self reliance(1) Shell(1) Solr(1) Sony VAIO(1) Spirituality(1) Sql Express(1) System Image(1) TDD(1) TSQL(3) Table variables(1) Tables(1) Tablet(1) Ubuntu(1) Url rewrite(1) VMWare(1) VSCode(1) Validation(2) VeraCode(1) Wallpaper(1) Wallpapers(1) Web Development(4) Windows(2) Windows 10(2) Windows 2016(2) Windows 8.1(1) Work culture(1) XML(1) Yii(1) renew(1)