@prefix log:  <http://lv2plug.in/ns/ext/log#> .
@prefix lv2:  <http://lv2plug.in/ns/lv2core#> .
@prefix rdf:  <http://www.w3.org/1999/02/22-rdf-syntax-ns#> .
@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
@prefix xsd:  <http://www.w3.org/2001/XMLSchema#> .

<http://lv2plug.in/ns/ext/log>
	a lv2:Specification ;
	rdfs:seeAlso <log.h> ,
		<lv2-log.doap.ttl> ;
	lv2:documentation """
<p>This extension defines a feature, log:log, which allows plugins to print log
messages with an API much like the standard C printf functions.  This allows,
for example, plugin logs to be nicely presented to the user in a graphical user
interface.</p>

<p>Different log levels (e.g. <q>error</q> or <q>information</q>) are defined
by URI and passed as an LV2_URID.  This document defines the typical levels
which should be sufficient, but implementations may define and use additional
levels to suit their needs.</p>
""" .

log:Entry
	a rdfs:Class ;
	rdfs:label "Log Entry" ;
	lv2:documentation """
<p>A log entry.  Subclasses of this class can be passed to LV2_Log_Log methods
to describe the nature of the log message.</p>""" .

log:Error
	a rdfs:Class ;
	rdfs:label "Error" ;
	rdfs:subClassOf log:Entry ;
	rdfs:comment "An error message." .

log:Note
	a rdfs:Class ;
	rdfs:label "Note" ;
	rdfs:subClassOf log:Entry ;
	rdfs:comment "An informative message." .

log:Warning
	a rdfs:Class ;
	rdfs:label "Warning" ;
	rdfs:subClassOf log:Entry ;
	rdfs:comment "A warning message." .

log:Trace
	a rdfs:Class ;
	rdfs:label "Trace" ;
	rdfs:subClassOf log:Entry ;
	lv2:documentation """
<p>A debugging trace.  These entries should not be displayed during normal
operation, but the host may implement an option to display them for debugging
purposes.</p>

<p>This entry type is special in that it may be written to in a real-time
thread.  It is assumed that if debug tracing is enabled, real-time
considerations are not a concern.</p>
""" .

log:log
	a lv2:Feature ;
	lv2:documentation """
<p>A feature which plugins may use to log messages.  To support this feature,
the host must pass an LV2_Feature to LV2_Descriptor::instantiate() with URI
LV2_LOG__log and data pointed to an instance of LV2_Log_Log.</p>
""" .
