如何正确地在SOE中输出日志信息

ArcGIS for Server提供完善的日志管理机制,用于日志的记录、查询和自动清除。开发人员在开发编写SOE代码时,应该采用该机制进行日志记录的输出。如果不采用该机制,输出的日志消息会写到ArcGIS Server内置的标准输出文件(C:\Program Files\ArcGIS\Server\framework\etc\service\logs)中,该位置文件是没有自动清除机制的,运行一段时间后,有可能导致该文件太大而导致服务性能下降。

具体指引如下:

1.在SOE的工程中创建ServerLogger对象。

该对象可以在SOE的Init方法中创建,并作为一个全局变量。

如下示例代码:

this.serverLog = new ServerLogger();

2.在需要输出日志信息的地方,使用该对象的LogMessage方法。

如下示例代码:

serverLog.LogMessage(ServerLogger.msgType.infoDetailed, this.soeName + ".init()", 200, "Initialized " + this.soeName + " SOE.");

其中日志信息是分级别的,一般建议把级别设置为详细infoDetailed。这样做的好处是在服务正常运行的情况下,日志消息不保存,只有在需要查找问题进行调试时,通过设置ArcGIS Server站点的日志记录模式为详细,此时才记录SOE中的日志消息。这样能大大降低Server日志文件的大小,避免了由于日志文件太大而影响了ArcGIS Server发布的服务的性能。

时间: 2024-08-29 16:40:23

如何正确地在SOE中输出日志信息的相关文章

log4j 日志信息的引入(通用版)——解决项目运行过程中的日志信息

定义 log4j是Apache的一个开放源代码项目,通过使用Log4j,我们可以控制日志信息输送的目的地是控制台.文件.GUI组件,甚至是套接口服务器.NT的事件记录器.UNIX Syslog守护进程等:我们也可以控制每一条日志的输出格式:通过定义每一条日志信息的级别,我们能够更加细致地控制日志的生成过程.最令人感兴趣的就是,这些可以通过一个配置文件来灵活地进行配置,而不需要修改应用的代码. 一.log4j.properties 的使用详解 1.输出级别的种类 ERROR.WARN.INFO.D

HardFault_Handler 输出日志信息

之前文章说了原理,这里把最终实现的代码总结: IAR 1 void hard_fault_handler_c (unsigned int * hardfault_args) 2 { 3 unsigned int stacked_r0; 4 unsigned int stacked_r1; 5 unsigned int stacked_r2; 6 unsigned int stacked_r3; 7 unsigned int stacked_r12; 8 unsigned int stacked_

查看与输出日志信息

查看与输出日志信息: 1.优先级级别从高到低: Error > Warning > Info > Debug > Verbose 2.日志输出的3种方式: (1)       Log.i (2)       System.out.println (3)       System.err.println 3.实践: 1 package com.example.test; 2 3 import android.test.AndroidTestCase; 4 import android

nohup 配置不输出日志信息的方法及linux重定向学习

起因 最近使用nohup创建了一个后台进程,默认日志输出到了nohup.out文件中,程序跑起来也就没再管, 过了大约一周,发现硬盘空间不够了,于是查找原因,发现这个nohup.out文件已经到了70G了,导致硬 盘空间不足了. 解决方案 只输出错误信息到日志文件 nohup ./program >/dev/null 2>log & 什么信息也不要 nohup ./program >/dev/null 2>&1 & 知识补充,关于Linux的重定向 Linu

oracle存储过程执行中输出日志文件

create or replace procedure p_outputdebug(a varchar2,b varchar2,c varchar2)is vFileName varchar2(100); OutputFile UTL_FILE.FILE_TYPE;begin select 'rfid_'||a.rfid||'.log' into vFileName from tbl_animal_info a where a.rfid='330100000078176' ; OutputFil

使用XSLT统计存储在XML中的日志信息

今天研究了下VS在读取低版本项目时对其进行升级的迁移报告"UpgradeLog.XML",这个报告是一个XML文件,但是加载了一个XSLT文件"UpgradeReport.xslt".这个XSLT文件除了用于逻辑计算的部分外,还包含了一些javascript代码,并引用了一个CSS文件"UpgradeReport.css"用来配置样式. 于是我照猫画虎,用XSLT实现了一个简易版的XML日志统计界面,只实现了统计各类日志的功能. "Lo

ASP.NET MVC中错误日志信息记录

MVC中有一个处理异常的过滤器 HandleErrorAttribute 1.新建一个类继承自 HandleErrorAttribute,然后重写OnException这个方法 public class MyExceptionAttribute:HandleErrorAttribute { /// <summary> /// 可捕获异常数据 /// </summary> /// <param name="filterContext"></par

【转】ASP.NET MVC中错误日志信息记录

MVC中有一个处理异常的过滤器 HandleErrorAttribute 1.新建一个类继承自 HandleErrorAttribute,然后重写OnException这个方法 public class MyExceptionAttribute:HandleErrorAttribute { /// <summary> /// 可捕获异常数据 /// </summary> /// <param name="filterContext"></par

如何在Go项目中输出版本信息?

我们经常在使用CLI工具的时候,都会有这样的参数输出: ``` ? ~ docker version Client: Docker Engine - Community Version: 18.09.2 API version: 1.39 Go version: go1.10.8 Git commit: 6247962 Built: Sun Feb 10 04:12:39 2019 OS/Arch: darwin/amd64 Experimental: false ? ~ ``` 可以打印出构建