How To Configure Log4J via C#

One of our products is currently using IKVM to interop with a java library. I kept seeing console warnings saying:

log4j:WARN Please initialize the log4j system properly.


Clearly the java library uses log4j and it is not getting initialized by my application. A customer was rightfully confused by this message so I spent a little time getting log4j setup and working.


At first I was hoping I could host log4j configuration XML along side my log4net configuration but sadly that was a pipedream. I opted for this approach.


public const string Log4JConfigFileName = "log4j.config";
private static void ConfigureLog4J()
    var patternLayout = new PatternLayout("%d [%t] %-5p %c - %m%n");
    var consoleAppender = new ConsoleAppender(patternLayout);
    var fileAppender = new RollingFileAppender(patternLayout, "./logs/file-extraction-errors.log", true);
    var rootLogger = Logger.getRootLogger();


Look for an existing log4j.config log file use that when it is present. Otherwise configure a console and a file appender and log only Errors to a particular file. The manual a lot.


Our log4j usage is pretty vertical so I can get away with hard coding the defaults and rely on throwing a log4j configuration file into the application directory when we need better control.


Hope this post helps if you ever have the pleasure of interop with log4j.