Hello Andy,

Thank you for the reply. I’m apparently not facile with log4j.properties. I've 
tried several configurations and I'm only able to get the TextQueryPF 
log.debug() to fire:

> [2017-10-22 16:47:52] Fuseki     INFO  [1] POST 
> http://localhost:13180/fuseki/bdrcrw/query
> [2017-10-22 16:47:52] Fuseki     INFO  [1] POST /bdrcrw :: 'query' :: 
> [application/x-www-form-urlencoded charset=UTF-8] ? 
> [2017-10-22 16:47:52] Fuseki     INFO  [1] Query = PREFIX : 
> <http://purl.bdrc.io/ontology/root#> PREFIX rdf: 
> <http://www.w3.org/1999/02/22-rdf-syntax-ns#> PREFIX rdfs: 
> <http://www.w3.org/2000/01/rdf-schema#> PREFIX owl: 
> <http://www.w3.org/2002/07/owl#> PREFIX adm: 
> <http://purl.bdrc.io/ontology/admin/> PREFIX bdo: 
> <http://purl.bdrc.io/ontology/core/> PREFIX bdr: 
> <http://purl.bdrc.io/resource/> PREFIX text: <http://jena.apache.org/text#> 
> PREFIX skos: <http://www.w3.org/2004/02/skos/core#> PREFIX lang: 
> <http://ontologi.es/lang/core#> PREFIX ad: 
> <http://schemas.talis.com/2005/address/schema#>  select ?s ?n ?sc where {   
> (?s1 ?sc ?lit) text:query (bdo:chunkContents "\"དགའ་རབ་རྡོ་རྗེ་\"") .   ?s 
> bdo:eTextHasChunk ?s1 .   ?s1 bdo:seqNum ?n . } limit 10 
> [2017-10-22 16:47:52] TextQueryPF DEBUG Text query: "དགའ་རབ་རྡོ་རྗེ་" (-1)
> [2017-10-22 16:47:52] Fuseki     INFO  [1] 200 OK (423 ms)

I’ve tried a variety of configurations along the following lines:

> log4j.rootLogger=INFO, jena.plainstdout
> log4j.logger.org.apache.jena=INFO
> log4j.logger.org.apache.jena.fuseki=INFO
> log4j.logger.org.apache.jena.query.text=DEBUG
> log4j.logger.org.apache.jena.query.text.TextQueryPF=DEBUG
> log4j.logger.org.apache.jena.query.text.TextIndexLucene=DEBUG


As I understand, setting  log4j.logger.org.apache.jena=DEBUG should be 
sufficient (if too verbose) and setting 
log4j.logger.org.apache.jena.query.text=DEBUG should have enabled debug for any 
class in the package and I really thought 
log4j.logger.org.apache.jena.query.text.TextIndexLucene=DEBUG should have 
enabled debug level in TextIndexLucene specifically. Setting 
log4j.logger.org.apache.jena.query.text=DEBUG and 
log4j.logger.org.apache.jena.query.text.TextQueryPF=INFO indeed turns off the 
log.debug in TextQueryPF as I expected.

The code region containing the log.debug() in TextIndexLucene is:

> 
>         String queryString = textClause ;
>         if (langClause != null)
>             queryString = "(" + queryString + ") AND " + langClause ;
>         if (graphClause != null)
>             queryString = "(" + queryString + ") AND " + graphClause ;
> 
>         if ( log.isDebugEnabled())
>             log.debug("Lucene query: {} ({})", queryString,limit) ;
> 
>         IndexSearcher indexSearcher = new IndexSearcher(indexReader) ;
>         Query query = parseQuery(queryString, queryAnalyzer) ;
>         if ( limit <= 0 )
>             limit = MAX_N ;
>         ScoreDoc[] sDocs = indexSearcher.search(query, limit).scoreDocs ;
> 
>         List<TextHit> results = new ArrayList<>() ;


And I know that execution passes the log.isDebugEnabled and reaches the 
parseQuery() since I can inject a queryString with an error and see the stack 
trace where the ParseException is caught in the getOrFill().

As far as I can tell the log is setup in the same manner in TextQueryPF and 
TextIndexLucene:

> import org.slf4j.Logger ;
> import org.slf4j.LoggerFactory ;
> 
> /** property function that accesses a text index */
> public class TextQueryPF extends PropertyFunctionBase {
>     private static Logger log = LoggerFactory.getLogger(TextQueryPF.class) ;


and

> import org.slf4j.Logger ;
> import org.slf4j.LoggerFactory ;
> 
> public class TextIndexLucene implements TextIndex {
>     private static Logger          log      = 
> LoggerFactory.getLogger(TextIndexLucene.class) ;


What am I missing?

Thanks,
Chris




> On Oct 21, 2017, at 3:33 PM, Andy Seaborne <[email protected]> wrote:
> 
> 
> 
> On 20/10/17 20:00, Chris Tomlinson wrote:
>> Hi,
>> I’m interested in looking into whether and how it might be possible to 
>> incorporate Lucene highlighting into jena-text. I don’t see any other work, 
>> but perhaps others have dealt with the topic already. I was thinking of some 
>> sort of a 4th return parameter in the PF.
>> While examining the code I found an oddity. I was interested in seeing the 
>> final Lucene query created in TextIndexLucene via the log.debug at line 417 
>> but it never fires even though the log.debug at line 249 in TextQueryPF 
>> produces expected output. I’m guessing that somehow the use of the lambda in 
>> getOrFill of the cache at line 267 of TextQueryPF somehow obscures the 
>> logging properties. Maybe that’s why there’s the commented out alternative 
>> that avoids the cache?
> 
> Because they are different loggers? As statics, they are as compiled, no 
> closure related.
> 
> TextIndexLucene.class and TextQueryPF.class respectively.
> 
> (I see the "no cache" code as a debugging remains - there was a cache issue 
> recently)
> 
>    Andy
> 
>> Thanks,
>> Chris

Reply via email to