Suite

Comment écrire des messages de journal d'arcpy vers le serveur ArcGis ?


Les services de géotraitement publiés écrivent des journaux disponibles dans ArcGis Server Manager (serveur-arcgis/arcgis/manager/log.html)

Arcpy aAjouter un message,Ajouter une erreur, etc. pour la journalisation, mais elles ne fonctionnent pas lorsque le script est publié en tant que service de géotraitement. Si je comprends bien, ils ne fonctionnent que localement dans ArcMap.

Existe-t-il un moyen d'écrire les journaux du serveur à partir d'arcpy ?


Si vous utilisez learcpy.AddMessage(message), il devrait apparaître dans votre GP publié, mais il apparaît sur la page des messages de travail (pas dans les journaux du serveur comme vous l'avez indiqué dans votre question). Vous devez également l'activer dans les propriétés du service (ou lorsque vous publiez le service) :


LeAjouter un messageajoutera un message à la file d'attente des messages de la tâche de géotraitement :

jobs/ja861064b634648f1be2371e2307c6112?f=json

Pour la journalisation générale, j'utilise la journalisation python :
importer la journalisationet assurez-vous que le formateur a un identifiant de processus :
formatter = logging.Formatter('%(asctime)s p%(process)s {%(pathname)s:%(lineno)d} %(levelname)s |-| %(message)s')

# Configurer la journalisation logfilepath = os.path.join(tempfile.gettempdir(),'example.log') logger = logging.getLogger('example_logger') logger.setLevel(logging.DEBUG) logger.handlers = [] formatter = logging.Formatter('%(asctime)sp%(process)s {%(pathname)s:%(lineno)d} %(levelname)s |-| %(message)s') fh = logging.FileHandler(logfilepath ) fh.setFormatter(formatter) logger.addHandler(fh) ch = logging.StreamHandler() ch.setLevel(logging.DEBUG) ch.setFormatter(formatter) logger.addHandler(ch) logger.info('exemple de démarrage de script… ' ) fh.flush() logger.debug('Importation d'ArcPy… ') import arcpy logger.debug('Importation d'ArcPy terminée')


Voir la vidéo: Publishing a Service to ArcGIS Server (Octobre 2021).