66 67 const LogDecorators& decorators() const { 68 return _decorators; 69 } 70 71 const char* config_string() const { 72 return _config_string; 73 } 74 75 LogOutput() : _config_string(NULL), _config_string_buffer_size(0) { 76 } 77 78 virtual ~LogOutput(); 79 80 // If the output can be rotated, trigger a forced rotation, otherwise do nothing. 81 // Log outputs with rotation capabilities should override this. 82 virtual void force_rotate() { 83 // Do nothing by default. 84 } 85 86 virtual const char* name() const = 0; 87 virtual bool initialize(const char* options, outputStream* errstream) = 0; 88 virtual int write(const LogDecorations& decorations, const char* msg) = 0; 89 virtual int write(LogMessageBuffer::Iterator msg_iterator) = 0; 90 }; 91 92 #endif // SHARE_VM_LOGGING_LOGOUTPUT_HPP | 66 67 const LogDecorators& decorators() const { 68 return _decorators; 69 } 70 71 const char* config_string() const { 72 return _config_string; 73 } 74 75 LogOutput() : _config_string(NULL), _config_string_buffer_size(0) { 76 } 77 78 virtual ~LogOutput(); 79 80 // If the output can be rotated, trigger a forced rotation, otherwise do nothing. 81 // Log outputs with rotation capabilities should override this. 82 virtual void force_rotate() { 83 // Do nothing by default. 84 } 85 86 virtual void describe(outputStream *out, size_t index); 87 88 virtual const char* name() const = 0; 89 virtual bool initialize(const char* options, outputStream* errstream) = 0; 90 virtual int write(const LogDecorations& decorations, const char* msg) = 0; 91 virtual int write(LogMessageBuffer::Iterator msg_iterator) = 0; 92 }; 93 94 #endif // SHARE_VM_LOGGING_LOGOUTPUT_HPP |