
The slf4j-migrator aims to 

General limitations
===================

- the FATAL level is not supported. 

  This is limitation is not deemed serious because there are usually
  very few log statements bearing the FATAL level. 


- if a method declares multiple loggers on the same line, the conversion will not be complete. Example:


  public void someMethod(Log l1, Log l2) {
   ...
  }

  will be converted as 

  public void someMethod(Log l1, Logger l2) {
   ...
  }


When migrating from log4j 
=========================

- Since NDC is not supported by SLF4J, the migrator cannot properly handle 
  NDC statements.
  
- Calls to PropertyConfigurator or DomConfigurator cannot be migrated since
  SLF4J the equivalents.
