Search code examples
javaapacheloggingopennlp

How to mute Apache OpenNLP logs


How to disable or mute Apache OpenNLP logs which looks like this:

Performing 100 iterations.
  1:  .. loglikelihood=-3384.6376826743144  0.38951464263772273
  2:  .. loglikelihood=-2191.9266688597672  0.9397911120212984
  3:  .. loglikelihood=-1645.8640771555981  0.9643661683391358
  4:  .. loglikelihood=-1340.386303774519   0.9739913987302887
  5:  .. loglikelihood=-1148.4141548519624  0.9748105672742167

 ...<skipping a bunch of iterations>...

 95:  .. loglikelihood=-288.25556805874436  0.9834118369854598
 96:  .. loglikelihood=-287.2283680343481   0.9834118369854598
 97:  .. loglikelihood=-286.2174830344526   0.9834118369854598
 98:  .. loglikelihood=-285.222486981048    0.9834118369854598
 99:  .. loglikelihood=-284.24296917223916  0.9834118369854598
100:  .. loglikelihood=-283.2785335773966   0.9834118369854598

Update: I need to do this in java code.


Solution

  • You can mute Apache OpenNLP logs during training by setting property PrintMessages=false, which is set as true for default, via -params option. The property should be provided in a property file:

    $ cat params.props
    PrintMessages=false
    

    Then start your training:

    $ opennlp TokenNameFinderTrainer -lang en -data en-ner.train -model en-ner.bin -params params.props