LogEvent Method

Summary
Writes a new event log.
Syntax
C#
C++/CLI
Python
public static void LogEvent( 
   string serverName, 
   string serverIPAddress, 
   string serverPort, 
   string clientIPAddress, 
   string clientPort, 
   DateTime dateTime, 
   EventLogEntryEventType eventType, 
   string channelID, 
   string description 
) 
public: 
static void LogEvent(  
   String^ serverName, 
   String^ serverIPAddress, 
   String^ serverPort, 
   String^ clientIPAddress, 
   String^ clientPort, 
   DateTime dateTime, 
   EventLogEntryEventType eventType, 
   String^ channelID, 
   String^ description 
)  

Parameters

serverName
The name of the server generating the event log.

serverIPAddress
The server IP address generating the event log.

serverPort
The server port number generating the event log.

clientIPAddress
The client IP address.

clientPort
The client port number.

dateTime
The date and time of the event log.

eventType
One of the EventLogEntryEventType values.

channelID
The client channel id.

description
The string to write to the event log.

Remarks

Calling this method will cause the EventLog event to be raised.

Any registered ILogginChannel will be notified for the event log by calling the ILogginChannel.WriteLog method

Example
C#
using Leadtools; 
using Leadtools.Codecs; 
using Leadtools.Jpip; 
using Leadtools.Jpip.Client.WinForms; 
using Leadtools.Jpip.Client.InteractiveDecoder; 
using Leadtools.Jpip.Server; 
using Leadtools.Jpip.Logging; 
 
private JpipServer _server; 
private WindowsLogWriter _logWriter; 
private int _responseCount; 
private string _loggingFileName; 
private bool _loggingFileEnabled; 
private const string LOCAL_IP_ADDRESS = "127.0.0.1"; 
private const string SERVER_NAME = "LEAD JPIP Server - Test Server"; 
private const int PORT_107 = 107; 
private string CACHE_DIRECTORY = Path.Combine(LEAD_VARS.ImagesDir, "jpeg2000"); 
private string IMAGES_DIRECTORY = Path.Combine(LEAD_VARS.ImagesDir, "jpeg2000"); 
private string IMAGE_NAME = Path.Combine(LEAD_VARS.ImagesDir, "Earth8000_Precint_4_.j2k"); 
private string LOG_DIRECTORY = Path.Combine(LEAD_VARS.ImagesDir, "Server Logs"); 
private string LOG_FILE_NAME = Path.Combine(LEAD_VARS.ImagesDir, "log.txt"); 
 
public RunServerExamples() 
{ 
   Leadtools.Examples.Support.SetLicense(); 
   _server = new JpipServer(); 
   _logWriter = new WindowsLogWriter(); 
   _responseCount = 0; 
   _loggingFileEnabled = true; 
 
   if (!File.Exists(LOG_DIRECTORY + LOG_FILE_NAME)) 
   { 
      Directory.CreateDirectory(LOG_DIRECTORY); 
      File.WriteAllText(LOG_FILE_NAME, " "); 
   } 
   _loggingFileName = LOG_FILE_NAME; 
} 
 
void EventLogger_EventLog(object sender, Leadtools.Jpip.Logging.EventLogEntry e) 
{ 
   Console.WriteLine("Server Name: {0}; Server IP: {1}; Server Port: {2}; Client IP: {3}; Client Port: {4}; Channel ID: {5}; Event Type: {6}; Description: {7}", 
                        e.ServerName, e.ServerIPAddress, e.ServerPort, 
                        e.ClientIPAddress, e.ClientPort, e.ChannelID, 
                        e.Type.ToString(), e.Description); 
} 
 
void _server_ResponseSending(object sender, ResponseSendingEventArgs e) 
{ 
   string dataFolder; 
   string dumpClientIP; 
   int dumpClientPort; 
   dataFolder = Path.Combine(LEAD_VARS.ImagesDir, "ServerResponses"); 
   dumpClientIP = "127.0.0.1"; 
   dumpClientPort = 1207; 
 
   if (!Directory.Exists(dataFolder)) 
   { 
      Directory.CreateDirectory(dataFolder); 
   } 
 
   if ((e.ClientIpAddress == dumpClientIP) && (e.ClientPort == dumpClientPort)) 
   { 
      string subDirectoryPath; 
      string responseDataFile; 
      _responseCount++; 
 
      subDirectoryPath = string.Concat(dataFolder, "\\", dumpClientIP); 
      responseDataFile = string.Concat(subDirectoryPath, "\\response_", _responseCount); 
 
      if (!Directory.Exists(subDirectoryPath)) 
      { 
         Directory.CreateDirectory(subDirectoryPath); 
      } 
      File.WriteAllBytes(responseDataFile, e.Data); 
   } 
} 
 
void _server_RequestReceived(object sender, RequestReceivedEventArgs e) 
{ 
   string denyClientIpAddress = "127.0.0.1"; 
   int denyClientPort = 120; 
   if ((e.ClientIpAddress == denyClientIpAddress) && (e.ClientPort == denyClientPort)) 
   { 
      e.Deny = true; 
 
      e.StatusCode = (int)HttpStatusCode.Forbidden; 
      e.Description = "Server refused to process request."; 
   } 
} 
 
public void ResetServerConfiguration() 
{ 
   if (!_server.IsRunning) 
   { 
      JpipConfiguration appConfigSettings; 
 
      //for reading from configuration file settings 
      appConfigSettings = new JpipConfiguration(); 
 
      //Server Settings 
      _server.Configuration.ServerName = SERVER_NAME; 
      _server.Configuration.IPAddress = LOCAL_IP_ADDRESS; 
      _server.Configuration.Port = PORT_107; 
      _server.Configuration.ImagesFolder = IMAGES_DIRECTORY; 
      _server.Configuration.CacheFolder = CACHE_DIRECTORY; 
      _server.Configuration.MaxServerBandwidth = ConfigurationDefaults.MaxServerBandwidth; 
      _server.Configuration.CacheSize = appConfigSettings.CacheSize; 
      _server.Configuration.DivideSuperBoxes = true; 
      _server.Configuration.ChunkSize = 512; 
      _server.Configuration.MaxClientCount = 5; 
      _server.Configuration.ConnectionIdleTimeout = TimeSpan.FromSeconds(ConfigurationDefaults.ConnectionIdleTimeout); 
      _server.Configuration.MaxSessionLifetime = TimeSpan.FromSeconds(ConfigurationDefaults.MaxSessionLifetime); 
      _server.Configuration.MaxConnectionBandwidth = ConfigurationDefaults.MaxConnectionBandwidth; 
 
      //Communication Settings 
      _server.Configuration.MaxTransportConnections = 15; 
      _server.Configuration.HandshakeTimeout = TimeSpan.FromSeconds(ConfigurationDefaults.HandshakeTimeout); 
      _server.Configuration.RequestTimeout = TimeSpan.FromSeconds(ConfigurationDefaults.RequestTimeout); 
      _server.Configuration.ChunkSize = ConfigurationDefaults.ChunkSize; 
      //Images Settings 
      _server.Configuration.ImageParsingTimeout = TimeSpan.FromSeconds(ConfigurationDefaults.ImageParsingTimeout); 
      _server.Configuration.PartitionBoxSize = 30; 
      _server.Configuration.DivideSuperBoxes = appConfigSettings.DivideSuperBoxes; 
      //Logging Settings 
      _server.Configuration.LoggingFile = _loggingFileName; 
      _server.Configuration.EnableLogging = _loggingFileEnabled; 
      _server.Configuration.LogInformation = true; 
      _server.Configuration.LogWarnings = true; 
      _server.Configuration.LogDebug = true; 
      _server.Configuration.LogErrors = true; 
 
      AddAliasFolders(); 
   } 
} 
 
private void AddAliasFolders() 
{ 
   string alias = "LeadImages"; 
   string physicalPath = LEAD_VARS.ImagesDir; 
   //Set server aliases folder 
   if (_server.Configuration.IsAliasExists(alias)) 
   { 
      if (_server.Configuration.GetAliasPath(alias) != physicalPath) 
      { 
         _server.Configuration.RemoveAliasFolder(alias); 
      } 
      else 
      { 
         return; 
      } 
   } 
   _server.Configuration.AddAliasFolder(alias, physicalPath); 
} 
 
public void SetViewer(JpipRasterImageViewer viewer) 
{ 
   viewer.CacheDirectoryName = CACHE_DIRECTORY; 
   viewer.PortNumber = PORT_107; 
   viewer.IPAddress = LOCAL_IP_ADDRESS; 
   viewer.PacketSize = 16384; 
   viewer.ChannelType = JpipChannelTypes.HttpChannel; 
} 
 
private class WindowsLogWriter : ILoggingChannel 
{ 
   public void WriteLog(Leadtools.Jpip.Logging.EventLogEntry logEntry) 
   { 
      string message; 
      message = string.Format("Server Name: {0}; Server IP: {1}; Server Port: {2}; Client IP: {3}; Client Port: {4}; Channel ID: {5}; Event Type: {6}; Description: {7}", 
                                logEntry.ServerName, logEntry.ServerIPAddress, logEntry.ServerPort, 
                                logEntry.ClientIPAddress, logEntry.ClientPort, logEntry.ChannelID, 
                                logEntry.Type.ToString(), logEntry.Description); 
      System.Diagnostics.EventLog.WriteEntry("JPIP LEAD Server", message); 
   } 
} 
 
public void StartServer() 
{ 
   ResetServerConfiguration(); 
 
   //Interactive handling 
   _server.RequestReceived += new EventHandler<RequestReceivedEventArgs>(_server_RequestReceived); 
   _server.ResponseSending += new EventHandler<ResponseSendingEventArgs>(_server_ResponseSending); 
 
   //Handle event logs 
   EventLogger.EventLog += new EventHandler<Leadtools.Jpip.Logging.EventLogEntry>(EventLogger_EventLog); 
 
   //clear the server cache 
   _server.ClearCacheContents(); 
 
   //Add custom logging channel 
   if (!EventLogger.ContainsLoggingChannel(_logWriter)) 
   { 
      EventLogger.AddLoggingChannel(_logWriter); 
   } 
   EventLogger.LogEvent(SERVER_NAME, LOCAL_IP_ADDRESS, PORT_107.ToString(), "", "", 
                          DateTime.Now, Leadtools.Jpip.Logging.EventLogEntryEventType.Information, 
                          "", "LEAD Example Started"); 
   //start the server 
   _server.Start(); 
 
   Debug.Assert(_server.IsRunning, "Server did not start."); 
 
   /* client side */ 
   JpipRasterImageViewer jpipViewer = new JpipRasterImageViewer(); 
 
   jpipViewer.FileOpened += new EventHandler(jpipViewer_FileOpened); 
   SetViewer(jpipViewer); 
   jpipViewer.Open(IMAGE_NAME); 
} 
 
void jpipViewer_FileOpened(object sender, EventArgs e) 
{ 
   JpipRasterImageViewer jpipViewer = (JpipRasterImageViewer)sender; 
   jpipViewer.ZoomIn(); 
   jpipViewer.Close(); 
 
   /*Server side*/ 
   if (_server.IsRunning) 
   { 
      _server.Stop(); 
   } 
   EventLogger.LogEvent(SERVER_NAME, LOCAL_IP_ADDRESS, PORT_107.ToString(), "", "", 
                          DateTime.Now, Leadtools.Jpip.Logging.EventLogEntryEventType.Information, 
                          "", "LEAD Example Ended"); 
} 
 
static class LEAD_VARS 
{ 
   public const string ImagesDir = @"C:\LEADTOOLS22\Resources\Images"; 
} 
Requirements

Target Platforms

Help Version 22.0.2023.3.31
Products | Support | Contact Us | Intellectual Property Notices
© 1991-2023 LEAD Technologies, Inc. All Rights Reserved.

Leadtools.Jpip.Server Assembly
Products | Support | Contact Us | Intellectual Property Notices
© 1991-2023 LEAD Technologies, Inc. All Rights Reserved.