Ice
3.9
Slice API Reference
Toggle main menu visibility
Loading...
Searching...
No Matches
Ice
RemoteLogger.ice
1
// Copyright (c) ZeroC, Inc.
2
3
#pragma once
4
5
[[
"cpp:dll-export:ICE_API"
]]
6
[[
"cpp:doxygen:include:Ice/Ice.h"
]]
7
[[
"cpp:header-ext:h"
]]
8
9
[[
"cpp:include:list"
]]
10
11
[[
"js:module:@zeroc/ice"
]]
12
13
#include "BuiltinSequences.ice"
14
15
[
"java:identifier:com.zeroc.Ice"
]
16
module
Ice
17
{
18
/// Represents the different types of log messages.
19
enum
LogMessageType
20
{
21
/// The {@link RemoteLogger} received a print message.
22
[
"swift:identifier:printMessage"
]
23
PrintMessage
,
24
25
/// The {@link RemoteLogger} received a trace message.
26
[
"swift:identifier:traceMessage"
]
27
TraceMessage
,
28
29
/// The {@link RemoteLogger} received a warning message.
30
[
"swift:identifier:warningMessage"
]
31
WarningMessage
,
32
33
/// The {@link RemoteLogger} received an error message.
34
[
"swift:identifier:errorMessage"
]
35
ErrorMessage
36
}
37
38
/// A sequence of {@link LogMessageType}.
39
sequence<LogMessageType>
LogMessageTypeSeq
;
40
41
/// Represents a full log message.
42
struct
LogMessage
43
{
44
/// The type of message sent to the {@link RemoteLogger}.
45
LogMessageType
type
;
46
47
/// The date and time when the {@link RemoteLogger} received this message, expressed as the number of
48
/// microseconds since the Unix Epoch (00:00:00 UTC on 1 January 1970).
49
long
timestamp
;
50
51
/// For a message of type 'trace', the trace category of this log message; otherwise, the empty string.
52
string
traceCategory
;
53
54
/// The log message itself.
55
string
message
;
56
}
57
58
/// A sequence of {@link LogMessage}.
59
[
"cpp:type:std::list<LogMessage>"
]
60
sequence<LogMessage>
LogMessageSeq
;
61
62
/// Represents an Ice object that accepts log messages. It's called by the implementation of {@link LoggerAdmin}.
63
interface
RemoteLogger
64
{
65
/// Attaches a remote logger to the local logger.
66
/// @param prefix The prefix of the associated local Logger.
67
/// @param logMessages Old log messages generated before "now".
68
[
"swift:identifier:initialize"
]
69
void
init
(
string
prefix,
LogMessageSeq
logMessages);
70
71
/// Logs a LogMessage.
72
/// @param message The message to log.
73
/// @remark {@link log} may be called by {@link LoggerAdmin} before {@link init}.
74
void
log
(
LogMessage
message);
75
}
76
77
/// Thrown when the provided {@link RemoteLogger} was previously attached to a {@link LoggerAdmin}.
78
exception
RemoteLoggerAlreadyAttachedException
79
{
80
}
81
82
/// Represents the admin facet that allows an Ice application to attach its {@link RemoteLogger} to the local
83
/// logger of an Ice communicator.
84
interface
LoggerAdmin
85
{
86
/// Attaches a {@link RemoteLogger} object to the local logger. This operation calls {@link RemoteLogger::init}
87
/// on @p prx.
88
/// @param prx A proxy to the remote logger.
89
/// @param messageTypes The list of message types that the remote logger wishes to receive. An empty list means
90
/// no filtering (send all message types).
91
/// @param traceCategories The categories of traces that the remote logger wishes to receive. This parameter is
92
/// ignored if @p messageTypes is not empty and does not include trace. An empty list means no filtering
93
/// (send all trace categories).
94
/// @param messageMax The maximum number of log messages (of all types) to be provided to
95
/// {@link RemoteLogger::init}. A negative value requests all messages available.
96
/// @throws RemoteLoggerAlreadyAttachedException Thrown if this remote logger is already attached to this admin
97
/// object.
98
void
attachRemoteLogger
(
99
RemoteLogger
* prx,
100
LogMessageTypeSeq
messageTypes,
101
StringSeq
traceCategories,
102
int
messageMax)
103
throws
RemoteLoggerAlreadyAttachedException
;
104
105
/// Detaches a {@link RemoteLogger} object from the local logger.
106
/// @param prx A proxy to the remote logger.
107
/// @return `true` if the provided remote logger proxy was detached, and `false` otherwise.
108
bool
detachRemoteLogger
(
RemoteLogger
* prx);
109
110
/// Retrieves recently logged log messages.
111
/// @param messageTypes The list of message types that the caller wishes to receive. An empty list means no
112
/// filtering (send all message types).
113
/// @param traceCategories The categories of traces that caller wish to receive. This parameter is ignored if
114
/// @p messageTypes is not empty and does not include trace. An empty list means no filtering (send all trace
115
/// categories).
116
/// @param messageMax The maximum number of log messages (of all types) to be returned. A negative value
117
/// requests all messages available.
118
/// @param prefix The prefix of the associated local logger.
119
/// @return The Log messages.
120
LogMessageSeq
getLog
(
121
LogMessageTypeSeq
messageTypes,
122
StringSeq
traceCategories,
123
int
messageMax,
124
out
string
prefix);
125
}
126
}
Ice::RemoteLoggerAlreadyAttachedException
Thrown when the provided RemoteLogger was previously attached to a LoggerAdmin.
Definition
RemoteLogger.ice:79
Ice::LoggerAdmin::detachRemoteLogger
bool detachRemoteLogger(RemoteLogger *prx)
Detaches a RemoteLogger object from the local logger.
Ice::LoggerAdmin::getLog
LogMessageSeq getLog(LogMessageTypeSeq messageTypes, StringSeq traceCategories, int messageMax, out string prefix)
Retrieves recently logged log messages.
Ice::LoggerAdmin::attachRemoteLogger
void attachRemoteLogger(RemoteLogger *prx, LogMessageTypeSeq messageTypes, StringSeq traceCategories, int messageMax)
Attaches a RemoteLogger object to the local logger.
Ice::LoggerAdmin
Represents the admin facet that allows an Ice application to attach its RemoteLogger to the local log...
Definition
RemoteLogger.ice:85
Ice::RemoteLogger::init
void init(string prefix, LogMessageSeq logMessages)
Attaches a remote logger to the local logger.
Ice::RemoteLogger::log
void log(LogMessage message)
Logs a LogMessage.
Ice::RemoteLogger
Represents an Ice object that accepts log messages. It's called by the implementation of LoggerAdmin.
Definition
RemoteLogger.ice:64
Ice::LogMessageSeq
sequence< LogMessage > LogMessageSeq
A sequence of LogMessage.
Definition
RemoteLogger.ice:60
Ice::LogMessageType
LogMessageType
Represents the different types of log messages.
Definition
RemoteLogger.ice:20
Ice::ErrorMessage
@ ErrorMessage
The RemoteLogger received an error message.
Definition
RemoteLogger.ice:35
Ice::PrintMessage
@ PrintMessage
The RemoteLogger received a print message.
Definition
RemoteLogger.ice:23
Ice::WarningMessage
@ WarningMessage
The RemoteLogger received a warning message.
Definition
RemoteLogger.ice:31
Ice::TraceMessage
@ TraceMessage
The RemoteLogger received a trace message.
Definition
RemoteLogger.ice:27
Ice::LogMessageTypeSeq
sequence< LogMessageType > LogMessageTypeSeq
A sequence of LogMessageType.
Definition
RemoteLogger.ice:39
Ice::StringSeq
sequence< string > StringSeq
A sequence of strings.
Definition
BuiltinSequences.ice:46
Ice
The Ice RPC framework.
Definition
BuiltinSequences.ice:23
Ice::LogMessage::type
LogMessageType type
The type of message sent to the RemoteLogger.
Definition
RemoteLogger.ice:45
Ice::LogMessage::traceCategory
string traceCategory
For a message of type 'trace', the trace category of this log message; otherwise, the empty string.
Definition
RemoteLogger.ice:52
Ice::LogMessage::timestamp
long timestamp
The date and time when the RemoteLogger received this message, expressed as the number of microsecond...
Definition
RemoteLogger.ice:49
Ice::LogMessage::message
string message
The log message itself.
Definition
RemoteLogger.ice:55
Ice::LogMessage
Represents a full log message.
Definition
RemoteLogger.ice:43
Generated by
1.17.0