public final void log(String filename,int lineNumber,String method,String tag,int level,String message){
  final LogMessage lm=new LogMessage(LogMessage.LOGMSG_TYPE_LOG,nextSequenceNumber.getAndIncrement());
  lm.addInt16(level,LogMessage.PART_KEY_LEVEL);
  if (filename != null) {
    lm.addString(filename,LogMessage.PART_KEY_FILENAME);
    if (lineNumber != 0)     lm.addInt32(lineNumber,LogMessage.PART_KEY_LINENUMBER);
  }
  if (method != null)   lm.addString(method,LogMessage.PART_KEY_FUNCTIONNAME);
  if (tag != null && !tag.isEmpty())   lm.addString(tag,LogMessage.PART_KEY_TAG);
  lm.addString(message,LogMessage.PART_KEY_MESSAGE);
  log(lm);
}

public final void log ( String filename , int lineNumber , String method , String tag , int level , String message ) { final LogMessage lm = new LogMessage ( LogMessage . LOGMSG_TYPE_LOG , nextSequenceNumber . getAndIncrement ( ) ) ; lm . addInt16 ( level , LogMessage . PART_KEY_LEVEL ) ; if ( filename != null ) { lm . addString ( filename , LogMessage . PART_KEY_FILENAME ) ; if ( lineNumber != 0 ) lm . addInt32 ( lineNumber , LogMessage . PART_KEY_LINENUMBER ) ; } if ( method != null ) lm . addString ( method , LogMessage . PART_KEY_FUNCTIONNAME ) ; if ( tag != null && ! tag . isEmpty ( ) ) lm . addString ( tag , LogMessage . PART_KEY_TAG ) ; lm . addString ( message , LogMessage . PART_KEY_MESSAGE ) ; log ( lm ) ; }
log a message with full information ( if provided )
