1/*************************************************************************
2 *
3 * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
4 *
5 * Copyright 2000, 2010 Oracle and/or its affiliates.
6 *
7 * OpenOffice.org - a multi-platform office productivity suite
8 *
9 * This file is part of OpenOffice.org.
10 *
11 * OpenOffice.org is free software: you can redistribute it and/or modify
12 * it under the terms of the GNU Lesser General Public License version 3
13 * only, as published by the Free Software Foundation.
14 *
15 * OpenOffice.org is distributed in the hope that it will be useful,
16 * but WITHOUT ANY WARRANTY; without even the implied warranty of
17 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
18 * GNU Lesser General Public License version 3 for more details
19 * (a copy is included in the LICENSE file that accompanied this code).
20 *
21 * You should have received a copy of the GNU Lesser General Public License
22 * version 3 along with OpenOffice.org.  If not, see
23 * <http://www.openoffice.org/license.html>
24 * for a copy of the LGPLv3 License.
25 *
26 ************************************************************************/
27
28#ifndef __com_sun_star_logging_FileHandler_idl__
29#define __com_sun_star_logging_FileHandler_idl__
30
31#ifndef __com_sun_star_lang_IllegalArgumentException_idl__
32#include <com/sun/star/lang/IllegalArgumentException.idl>
33#endif
34#ifndef __com_sun_star_beans_NamedValue_idl__
35#include <com/sun/star/beans/NamedValue.idl>
36#endif
37
38//=============================================================================
39
40module com { module sun { module star { module logging {
41
42interface XLogHandler;
43
44//=============================================================================
45
46/** specifies a component implementing a log handler whose output
47    channel is a file.
48
49    <p>The handler will use the <code>Encoding</code> attribute of <type>XLogHandler</type>
50    to determine how to encode strings before actually writing them to the output
51    file.</p>
52
53    @see XLogHandler::Encoding
54
55    @since OOo 2.3
56 */
57service FileHandler : XLogHandler
58{
59    /** creates a log handler whose output is directed to a file given by URL.
60
61        @param FileURL
62            the URL of the file to be created. This URL is resolved using the
63            <type scope="::com::sun::star::util">PathSubstitution</type> service. That
64            is, it is allowed to include placeholders such as <code>$(userurl)</code>.
65    */
66    create( [in] string FileURL );
67
68    /** creates an instance of the log handler, using generic settings
69
70        @param Settings
71            contains the initial settings for the log handler
72
73            <p>The following settings are recognized and supported:
74            <ul><li><code>Encoding</code> - denotes the initial value of the <member>XLogHandler::Encoding</member></li>
75                <li><code>Formatter</code> - denotes the initial value of the <member>XLogHandler::Formatter</member></li>
76                <li><code>Level</code> - denotes the initial value of the <member>XLogHandler::Level</member></li>
77            </ul></p>
78
79            <p>Additionally, a setting name <code>FileURL</code> is recognized. It must be of type
80            string, and denotes the file URL to which the handler's output should be directed.</p>
81
82            <p>At least the URL argument must be present in the settings.</p>
83
84        @throws ::com::sun::star::lang::IllegalArgumentException
85            if <arg>Settings</args> contains settings whose value is of the wrong type.
86    */
87    createWithSettings( [in] sequence< ::com::sun::star::beans::NamedValue > Settings )
88        raises ( ::com::sun::star::lang::IllegalArgumentException );
89};
90
91//=============================================================================
92
93}; }; }; };
94
95//=============================================================================
96
97#endif
98