sitemap:
<map:components>
<map:generators default="file">
<map:generator name="jx"
src="org.apache.cocoon.generation.JXTemplateGenerator" label="content"
logger="sitemap.generator.jx"/>
</map:generators>
<map:transformers default="xslt">
<map:transformer name="multi-i18n"
logger="sitemap.transformer.i18n"
src="org.apache.cocoon.transformation.I18nTransformer">
<catalogues default="default">
<catalogue id="forms" name="messages">
<location>resources/translation</location>
<location>resource://org/apache/cocoon/forms/system/i18n</location>
</catalogue>
<catalogue id="default" name="messages"
location="resources/translation"/>
</catalogues>
</map:transformer>
</map:transformers>
</map:components>
logkit:
<logkit log-level="DEBUG">
<!--+
| Factories are responsible to create the consumers of the log events,
| the targets. Here we have configured just a few, the main cocoon
| target factory (that prints to a file) and the servlet target
factory
| (that prints back to the servlet container log stream) but for more
| info on the available logkit factories, please consult
|
http://excalibur.apache.org/apidocs/org/apache/avalon/excalibur/logger/factory/package-summary.html
+-->
<factories>
<factory class="org.apache.cocoon.util.log.CocoonTargetFactory"
type="cocoon"/>
<factory
class="org.apache.avalon.excalibur.logger.factory.ServletTargetFactory"
type="servlet"/>
<factory
class="org.apache.avalon.excalibur.logger.factory.StreamTargetFactory"
type="stream"/>
</factories>
<!--+
| Targets are the instances of the consumers of the log events and
various
| instances can be configured and referenced via their 'id'.
| Note how the element name of the target indicates what type of
factory
| that is created with.
+-->
<targets>
<cocoon id="main">
<!--+
| <filename> is the absolute location of the log file, note
how you can
| use the ${context-root} variable to indicate the root of the
| cocoon web application (the directory that contains WEB-INF,
that is)
+-->
<filename>${context-root}/WEB-INF/logs/cocoon.log</filename>
<!--+
| <format> indicates how the log event should be serialized.
| Note that newlines are *not* automatic: you have to specify the
| newline as '\n' or everything will appear on a single line!
|
| The first format below is verbose: it includes error
stacktraces.
| If you want something even more verbose use %{throwable}
which will
| show a full chain of exceptions. Using the second format won't
| output stacktraces at all.
|
| Please mind that the default format logs request uri along with
| query string. This may log confidential data (passwords etc.).
+-->
<format type="cocoon">%5.5{priority} %{time} [%{category}]
(%{uri}%{query}) %{thread}/%{class:short}:
%{message}\n%{rootThrowable}</format>
<!--format type="cocoon">%5.5{priority} %{time} [%{category}]
(%{uri}%{query}) %{thread}/%{class:short}: %{message}\n%</format-->
<!--+
| <append> if set to 'true' will make cocoon append the events
| to the existing file, if set to 'false' cocoon will override
| the existing ones at every new start.
+-->
<append>false</append>
<!--+
| <rotation> allows you to rotate log files one they meet certain
| criteria. If you uncomment the example below, the log files will
| be rotated once they are a day old or bigger than 100 Mb.
<rotation type="unique" pattern="yyyyMMdd" suffix=".log">
<or>
<size>100m</size>
<time>24:00:00</time>
</or>
</rotation>
+-->
</cocoon>
<cocoon id="deprecation">
<filename>${context-root}/WEB-INF/logs/deprecation.log</filename>
<format type="cocoon">%5.5{priority} %{time} [%{category}]
(%{uri}%{query}) %{thread}/%{class:short}: %{message}\n</format>
<append>false</append>
</cocoon>
<cocoon id="i18n">
<filename>${context-root}/WEB-INF/logs/i18n.log</filename>
<format type="cocoon">
%23.23{time:yyyy-MM-dd' 'HH:mm:ss.SSS} %5.5{priority}
%40.40{category} (%{host}%{uri}) %{thread}/%{class:short}:
%{message}\n%{throwable}
</format>
<append>false</append>
<rotation pattern="-yyyy-MM-dd_HH.mm" suffix=".log" type="unique">
<or>
<size>10m</size>
<time>24:00:00</time>
</or>
</rotation>
</cocoon>
<servlet id="servlet">
<format type="extended">%5.5{priority} %5.5{time} [%8.8{category}]
(%{context}): %{message}\n</format>
</servlet>
<stream id="console">
<stream>System.out</stream>
<format type="extended">%5.5{priority} %5.5{time} [%8.8{category}]
(%{context}): %{message}\n</format>
</stream>
</targets>
<!--+
| Categories 'route' log events to particular targets, filtering
| on importance level (one of DEBUG, INFO, WARN, ERROR, FATAL_ERROR,
| ordered from most verbose to least verbose) and on the 'category'
| used by the producer of the log event to further classify it.
| Some of these log categories are hardwired in the code and some
| others are user-selectable, for example for sitemap components
| where you can specify the category in their sitemap declaration.
|
| Category names can be dot-separated (example,
'sitemap.generator.file')
| and the variuos pieces are treated as 'sub-categories'. By nesting
| the <category> element you achieve sub-category filtering and
you can
| even have different log level filtering per category and
subcategory.
| (See the comments below for an example of this)
|
| NOTE: not all subcategories are defined in this file. Not defined
| subcategories will be created automatically and they will inherit
| the settings of the parent subcategory. When defining a subcategory
| manually, it is required that you specify the log target, because
| they are not inherited in this case.
+-->
<categories>
<!--+
| This is the main category. The empty name attribute indicates that
| this rule will match all log events from all categories.
+-->
<category log-level="INFO" name="">
<log-target id-ref="main"/>
</category>
<!--+
| This is the deprecation category. If this category is set to WARN
| the log will contain messages about deprecated stuff used by
| your application.
+-->
<category log-level="WARN" name="deprecation">
<log-target id-ref="deprecation"/>
</category>
<category log-level="WARN" name="sitemap">
<category log-level="WARN" name="transformer">
<category log-level="DEBUG" name="i18n">
<log-target id-ref="i18n"/>
</category>
</category>
</category>
<!--+
| This is a little more elaborate example, where some of the
logs are
| sent to the log file and some others (the ones related to the
sitemap),
| are sent to the servlet container (where they could be further
relayed
| to the console, for example)
|
<category log-level="ERROR" name="">
<category log-level="DEBUG" name="sitemap">
<log-target id-ref="servlet"/>
</category>
<category log-level="INFO" name="access">
<log-target id-ref="console"/>
</category>
<log-target id-ref="core"/>
</category>
+-->
</categories>
</logkit>
Ard Schrijvers wrote:
can you mail your logkit.xconf and the sitemap part where you declare
your i18n transformer?
>
> There's no log file produced. In the console I see:
>
> PoolThread-4/LoggerSwitch.SwitchingLogger: Logger for category
> sitemap.serializer.html not defined in configuration. New
> Logger created
> and returned
>
> Thanks
>
> Ard Schrijvers wrote:
>
> > I don't think guessing is the way to go when something does
> not work:
> > Make sure you find out what is going wrong through logs:
> >
> > So, add to your i18n:transformer a logger, for example like:
> >
> > <map:transformer name="i18n" logger="sitemap.transformer.i18n"
> > src="org.apache.cocoon.transformation.I18nTransformer">
> >
> > Go to your logkit.xconf
> >
> > Add in targets
> >
> > <cocoon id="i18n">
> > <filename>${context-root}/WEB-INF/logs/i18n.log</filename>
> > <format type="cocoon">
> > %23.23{time:yyyy-MM-dd' 'HH:mm:ss.SSS} %5.5{priority}
> > %40.40{category} (%{host}%{uri}) %{thread}/%{class:short}:
> > %{message}\n%{throwable}
> > </format>
> > <append>false</append>
> > <rotation pattern="-yyyy-MM-dd_HH.mm" suffix=".log"
> type="unique">
> > <or>
> > <size>10m</size>
> > <time>24:00:00</time>
> > </or>
> > </rotation>
> > </cocoon>
> >
> > Add in categories (not the levels that are already in, but
> make sure
> > you have at least the piece below, probably only have to
> add the i18n
> > part )
> >
> > <category log-level="WARN" name="sitemap">
> > <category log-level="WARN" name="transformer">
> > <category log-level="DEBUG" name="i18n">
> > <log-target id-ref="i18n"/>
> > </category>
> > </category>
> > </category>
> >
> >
> > Restart cocoon, do the request again, and look in the WEB-INF under
> > logs folder in i18n.log: I know I had your problem before,
> and I don't
> > know how I fixed it, but just make sure you know how to debug your
> > cocoon app and you will find the solution (which you will probably
> > will forget as well: important is that you know how to
> handle debugger
> > stuff)
> >
> > AS
> >
> >
> > >
> > > With a different name it still doesn't work.
> > > >
> > > It may sound weird but I get the same error when I put
> the translation
> > > in the folder named 'i18n'. When I rename it to something
> different it
> > > does work.
> > >
> > > Jasha Joachimsthal
> > >
> > > ---------
> > > > > > Hi again,
> > > > >
> > > > > I have looked up how to override the CForms localization,
> > > > > but it's now
> > > > > working.
> > > > >
> > > > > In my subsitemap I have:
> > > > >
> > > > > <map:transformers default="xslt">
> > > > > <map:transformer name="i18n"
> > > > > src="org.apache.cocoon.transformation.I18nTransformer">
> > > > > <catalogues default="default">
> > > > > <catalogue id="forms" name="messages">
> > > > > <location>resources/i18n</location>
> > > > >
> > > > >
> > >
> <location>resource://org/apache/cocoon/forms/system/i18n</location>
> > > > > </catalogue>
> > > > > <catalogue id="default" name="messages"
> > > > > location="resources/i18n"/>
> > > > > </catalogues>
> > > > > </map:transformer>
> > > > > </map:transformers>
> > > > >
> > > > >
> > > > > In resources/i18n/messages.xml I have:
> > > > >
> > > > > <?xml version="1.0" encoding="UTF-8"?>
> > > > > <catalogue xml:lang="en">
> > > > > <message key="general.field-required">This is a required
> > > > > field</message>
> > > > > </catalogue>
> > > > >
> > > > >
> > > > > But I keep on getting the untranslated key as the message.
> > > > >
> > > >
> > > > It probably can't find the folder resources/i18n from the
> > > point where
> > > > your sitemap is.
> > > > Keep in mind that calling <location>resources/i18n</location>
> > > > means it's
> > > > relative to where you are. Did you check that?
> > > >
> >
> >
> > --
> >
> > Hippo
> > Oosteinde 11
> > 1017WT Amsterdam
> > The Netherlands
> > Tel +31 (0)20 5224466
> > -------------------------------------------------------------
> > [EMAIL PROTECTED] / http://www.hippo.nl
> > --------------------------------------------------------------
> >
> > > >
> >
> >
> ---------------------------------------------------------------------
> > To unsubscribe, e-mail: [EMAIL PROTECTED]
> > For additional commands, e-mail: [EMAIL PROTECTED]
> >
>
>
> --
> --
> Fernando D. Mato Mira [EMAIL PROTECTED]
> Thomson Corporation Switzerland AG
>
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: [EMAIL PROTECTED]
> For additional commands, e-mail: [EMAIL PROTECTED]
>
>
---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]
--
--
Fernando D. Mato Mira [EMAIL PROTECTED]
Thomson Corporation Switzerland AG
---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]