diff --git a/src/Project.Tests/DefaultControllerTests.cs b/src/Project.Tests/DefaultControllerTests.cs
index 16e01dfe3d293de987ca1f073f752e1091cf4191..a083cd16a3661069ffb17861f8732c0028148813 100644
--- a/src/Project.Tests/DefaultControllerTests.cs
+++ b/src/Project.Tests/DefaultControllerTests.cs
@@ -17,6 +17,9 @@ using System.Security.Claims;
 using LinqToDB.Data;
 using Coscine.Database.Settings;
 using Coscine.Configuration;
+using Microsoft.Extensions.Logging;
+using Microsoft.Extensions.Logging.Abstractions;
+using Coscine.Logging;
 
 namespace Coscine.Api.Project.Tests
 {
@@ -44,6 +47,20 @@ namespace Coscine.Api.Project.Tests
             Controller = controller;
         }
 
+        private static ILogger<ProjectController> projectLogger = null;
+        private static ILogger<ProjectController> ProjectLogger
+        {
+            get
+            {
+                if (projectLogger == null)
+                {
+                    CoscineLoggerConfiguration.SetConfig();
+                    projectLogger = new NullLogger<ProjectController>();
+                }
+                return projectLogger;
+            }
+        }
+
         [OneTimeSetUp]
         public void Setup()
         {
@@ -294,7 +311,7 @@ namespace Coscine.Api.Project.Tests
             {
                 projectResourceModel.Delete(projectResource);
             }
-            ProjectController projectController = new ProjectController();
+            ProjectController projectController = new ProjectController(ProjectLogger);
             foreach (var project in Projects)
             {
                 projectController.DeleteProject(project, true, false);
diff --git a/src/Project.Tests/Project.Tests.csproj b/src/Project.Tests/Project.Tests.csproj
index 1e9b5d8abc14e6bbf26eedaff885e2bb37104bea..d30bb63d668f4b517203b9824cfb204dcaea658d 100644
--- a/src/Project.Tests/Project.Tests.csproj
+++ b/src/Project.Tests/Project.Tests.csproj
@@ -59,17 +59,17 @@
     <Reference Include="Coscine.Action, Version=1.10.0.0, Culture=neutral, processorArchitecture=AMD64">
       <HintPath>..\packages\Coscine.Action.1.10.0\lib\net461\Coscine.Action.dll</HintPath>
     </Reference>
-    <Reference Include="Coscine.ApiCommons, Version=1.6.3.0, Culture=neutral, PublicKeyToken=af4c1345df96546b, processorArchitecture=MSIL">
-      <HintPath>..\packages\Coscine.ApiCommons.1.6.3\lib\net461\Coscine.ApiCommons.dll</HintPath>
+    <Reference Include="Coscine.ApiCommons, Version=1.7.0.0, Culture=neutral, PublicKeyToken=af4c1345df96546b, processorArchitecture=MSIL">
+      <HintPath>..\packages\Coscine.ApiCommons.1.7.0-topic-671-readab0004\lib\net461\Coscine.ApiCommons.dll</HintPath>
     </Reference>
     <Reference Include="Coscine.Configuration, Version=1.4.0.0, Culture=neutral, PublicKeyToken=ce3d7a32d7dc1e5a, processorArchitecture=MSIL">
       <HintPath>..\packages\Coscine.Configuration.1.4.0\lib\net461\Coscine.Configuration.dll</HintPath>
     </Reference>
-    <Reference Include="Coscine.Database, Version=1.16.0.0, Culture=neutral, PublicKeyToken=767d77427707b70a, processorArchitecture=MSIL">
-      <HintPath>..\packages\Coscine.Database.1.16.0\lib\net461\Coscine.Database.dll</HintPath>
+    <Reference Include="Coscine.Database, Version=1.17.0.0, Culture=neutral, PublicKeyToken=767d77427707b70a, processorArchitecture=MSIL">
+      <HintPath>..\packages\Coscine.Database.1.17.0-topic-671-readab0003\lib\net461\Coscine.Database.dll</HintPath>
     </Reference>
-    <Reference Include="Coscine.Logging, Version=1.0.1.0, Culture=neutral, PublicKeyToken=e1ed402bc3f6525e, processorArchitecture=MSIL">
-      <HintPath>..\packages\Coscine.Logging.1.0.1\lib\net461\Coscine.Logging.dll</HintPath>
+    <Reference Include="Coscine.Logging, Version=1.1.0.0, Culture=neutral, PublicKeyToken=e1ed402bc3f6525e, processorArchitecture=MSIL">
+      <HintPath>..\packages\Coscine.Logging.1.1.0-topic-671-readab0010\lib\net461\Coscine.Logging.dll</HintPath>
     </Reference>
     <Reference Include="Coscine.ProxyApi, Version=1.2.1.0, Culture=neutral, processorArchitecture=MSIL">
       <HintPath>..\packages\Coscine.ProxyApi.1.2.1\lib\net461\Coscine.ProxyApi.dll</HintPath>
diff --git a/src/Project.Tests/ProjectControllerTests.cs b/src/Project.Tests/ProjectControllerTests.cs
index c76c9b272d3c7c0a59c3cf4dd67d9e0819b4faad..4ebd1e05f0f2ab00d3d67e31645ef0b3718bb2a8 100644
--- a/src/Project.Tests/ProjectControllerTests.cs
+++ b/src/Project.Tests/ProjectControllerTests.cs
@@ -9,15 +9,31 @@ using System;
 using Coscine.ApiCommons.Factories;
 using System.Collections.Generic;
 using Coscine.Database.Util;
+using Microsoft.Extensions.Logging;
+using Moq;
+using Microsoft.Extensions.Logging.Abstractions;
+using Coscine.Logging;
 
 namespace Coscine.Api.Project.Tests
 {
     [TestFixture]
     public class ProjectControllerTests : DefaultControllerTests<ProjectController>
     {
-        public ProjectControllerTests() : base(new ProjectController())
+
+        private static ILogger<ProjectController> projectLogger = null;
+        private static ILogger<ProjectController> ProjectLogger { get
         {
+            if (projectLogger == null)
+            {
+                CoscineLoggerConfiguration.SetConfig();
+                projectLogger = new NullLogger<ProjectController>();
+            }
+            return projectLogger;
+        } }
 
+        public ProjectControllerTests() : base(new ProjectController(ProjectLogger))
+        {
+            
         }
 
         [Test]
diff --git a/src/Project.Tests/app.config b/src/Project.Tests/app.config
index 0b05b46dfcd37c4524d11fa88a90853aa86db5b0..646875fc6329f73841bbe2b1042cd0147981cb2f 100644
--- a/src/Project.Tests/app.config
+++ b/src/Project.Tests/app.config
@@ -88,7 +88,7 @@
       </dependentAssembly>
       <dependentAssembly>
         <assemblyIdentity name="Coscine.Database" publicKeyToken="767d77427707b70a" culture="neutral" />
-        <bindingRedirect oldVersion="0.0.0.0-1.16.0.0" newVersion="1.16.0.0" />
+        <bindingRedirect oldVersion="0.0.0.0-1.17.0.0" newVersion="1.17.0.0" />
       </dependentAssembly>
       <dependentAssembly>
         <assemblyIdentity name="System.IdentityModel.Tokens.Jwt" publicKeyToken="31bf3856ad364e35" culture="neutral" />
@@ -140,7 +140,7 @@
       </dependentAssembly>
       <dependentAssembly>
         <assemblyIdentity name="Coscine.Logging" publicKeyToken="e1ed402bc3f6525e" culture="neutral" />
-        <bindingRedirect oldVersion="0.0.0.0-1.0.1.0" newVersion="1.0.1.0" />
+        <bindingRedirect oldVersion="0.0.0.0-1.1.0.0" newVersion="1.1.0.0" />
       </dependentAssembly>
       <dependentAssembly>
         <assemblyIdentity name="Microsoft.IdentityModel.Logging" publicKeyToken="31bf3856ad364e35" culture="neutral" />
diff --git a/src/Project.Tests/packages.config b/src/Project.Tests/packages.config
index 3264eb1baafd44e902d804d2b0136d6a4fbc16aa..cbf5da71420790a519857fc4d1f8b6975d8b5fac 100644
--- a/src/Project.Tests/packages.config
+++ b/src/Project.Tests/packages.config
@@ -5,10 +5,10 @@
   <package id="Castle.Core" version="4.4.0" targetFramework="net472" />
   <package id="Consul" version="0.7.2.6" targetFramework="net472" />
   <package id="Coscine.Action" version="1.10.0" targetFramework="net472" />
-  <package id="Coscine.ApiCommons" version="1.6.3" targetFramework="net472" />
+  <package id="Coscine.ApiCommons" version="1.7.0-topic-671-readab0004" targetFramework="net472" />
   <package id="Coscine.Configuration" version="1.4.0" targetFramework="net472" />
-  <package id="Coscine.Database" version="1.16.0" targetFramework="net472" />
-  <package id="Coscine.Logging" version="1.0.1" targetFramework="net472" />
+  <package id="Coscine.Database" version="1.17.0-topic-671-readab0003" targetFramework="net472" />
+  <package id="Coscine.Logging" version="1.1.0-topic-671-readab0010" targetFramework="net472" />
   <package id="Coscine.ProxyApi" version="1.2.1" targetFramework="net472" />
   <package id="Coscine.SharePoint.Webparts.Vue" version="1.5.0" targetFramework="net472" />
   <package id="EntityFramework" version="6.2.0" targetFramework="net472" />
diff --git a/src/Project/App.config b/src/Project/App.config
index 1ff23b04ddd41b21a2225cc747a160a0e479e5d3..20ab1704673e557ab4403080a7ac6738cac1ad12 100644
--- a/src/Project/App.config
+++ b/src/Project/App.config
@@ -91,7 +91,7 @@
       </dependentAssembly>
       <dependentAssembly>
         <assemblyIdentity name="Coscine.Database" publicKeyToken="767d77427707b70a" culture="neutral" />
-        <bindingRedirect oldVersion="0.0.0.0-1.16.0.0" newVersion="1.16.0.0" />
+        <bindingRedirect oldVersion="0.0.0.0-1.17.0.0" newVersion="1.17.0.0" />
       </dependentAssembly>
       <dependentAssembly>
         <assemblyIdentity name="System.IdentityModel.Tokens.Jwt" publicKeyToken="31bf3856ad364e35" culture="neutral" />
@@ -143,7 +143,7 @@
       </dependentAssembly>
       <dependentAssembly>
         <assemblyIdentity name="Coscine.Logging" publicKeyToken="e1ed402bc3f6525e" culture="neutral" />
-        <bindingRedirect oldVersion="0.0.0.0-1.0.1.0" newVersion="1.0.1.0" />
+        <bindingRedirect oldVersion="0.0.0.0-1.1.0.0" newVersion="1.1.0.0" />
       </dependentAssembly>
       <dependentAssembly>
         <assemblyIdentity name="Microsoft.IdentityModel.Logging" publicKeyToken="31bf3856ad364e35" culture="neutral" />
diff --git a/src/Project/Controllers/ProjectController.cs b/src/Project/Controllers/ProjectController.cs
index 0d47dd69df22c2f153da40bfdced7528306fa8b8..fa0c5cf8516fa256a7ea62d6cf803be9fd868a41 100644
--- a/src/Project/Controllers/ProjectController.cs
+++ b/src/Project/Controllers/ProjectController.cs
@@ -10,6 +10,11 @@ using System.Linq;
 using Coscine.Configuration;
 using Microsoft.AspNetCore.Authorization;
 using Coscine.Database.Util;
+using Coscine.Logging;
+using Microsoft.Extensions.Logging;
+using Newtonsoft.Json.Linq;
+using Coscine.Database.DataModel;
+using System.Collections.Generic;
 
 namespace Coscine.Api.Project.Controllers
 {
@@ -20,24 +25,33 @@ namespace Coscine.Api.Project.Controllers
         private readonly ProjectModel _projectModel;
         private readonly IConfiguration _configuration;
         private readonly Emitter _emitter;
+        private readonly ProjectRoleModel _projectRoleModel;
+        private readonly CoscineLogger _coscineLogger;
+        private readonly AnalyticsLogObject _analyticsLogObject;
 
-        public ProjectController()
+        public ProjectController(ILogger<ProjectController> logger)
         {
             _authenticator = new Authenticator(this, Program.Configuration);
             _configuration = Program.Configuration;
             _projectModel = new ProjectModel();
             _emitter = new Emitter(_configuration);
+            _projectRoleModel = new ProjectRoleModel();
+            _coscineLogger = new CoscineLogger(logger);
+            _analyticsLogObject = new AnalyticsLogObject();
         }
-
+        
         [Route("[controller]")]
         public IActionResult Index()
         {
             var user = _authenticator.GetUser();
-
-            return Ok(_projectModel.GetWithAccess(user, UserRoles.Member, UserRoles.Owner).ToList()
+            var result = _projectModel.GetWithAccess(user, UserRoles.Member, UserRoles.Owner).ToList()
                 .Select((project) => _projectModel.CreateReturnObjectFromDatabaseObject(project))
-                .OrderBy(element => element.DisplayName)
-            );
+                .OrderBy(element => element.DisplayName);
+
+            LogAnalytics("View Home", result);
+
+            return Ok(result);
+
         }
 
         [HttpGet("[controller]/{id}")]
@@ -73,14 +87,18 @@ namespace Coscine.Api.Project.Controllers
             var resourceTypeModel = new ResourceTypeModel();
             if (_projectModel.HasAccess(user, project, UserRoles.Member, UserRoles.Owner))
             {
-                return Json(resourceModel.GetAllWhere((resource) =>
+                var resources = resourceModel.GetAllWhere((resource) =>
                         (from projectResource in resource.ProjectResourceResourceIdIds
                          where projectResource.ProjectId == project.Id
                          select projectResource).Any())
                         .Select((resource) =>
                         {
                             return resourceModel.CreateReturnObjectFromDatabaseObject(resource);
-                        }).OrderBy(element => element.DisplayName));
+                        }).OrderBy(element => element.DisplayName);
+
+                LogAnalytics("View Resources", null, resources);
+
+                return Json(resources);
             }
             else
             {
@@ -94,8 +112,9 @@ namespace Coscine.Api.Project.Controllers
             var user = _authenticator.GetUser();
             var projectObject = ObjectFactory<ProjectObject>.DeserializeFromStream(Request.Body);
             var project = _projectModel.GetById(Guid.Parse(id));
-            if(_projectModel.HasAccess(user, project, UserRoles.Owner))
+            if (_projectModel.HasAccess(user, project, UserRoles.Owner))
             {
+                LogAnalytics("Edit Project", null, null, id, user);
                 return Ok(_projectModel.UpdateByObject(project, projectObject));
             }
             else
@@ -111,6 +130,7 @@ namespace Coscine.Api.Project.Controllers
             var project = _projectModel.GetById(Guid.Parse(id));
             if (_projectModel.HasAccess(user, project, UserRoles.Owner))
             {
+                LogAnalytics("Delete Project", null, null, id, user);
                 DeleteProject(project);
                 return Json(_projectModel.CreateReturnObjectFromDatabaseObject(project));
             }
@@ -238,7 +258,51 @@ namespace Coscine.Api.Project.Controllers
                 ProjectOwner = user
             });
 
+            LogAnalytics("Add Project", null, null, project.Id.ToString(), user);
+
             return Json(_projectModel.CreateReturnObjectFromDatabaseObject(project));
         }
+
+        private void LogAnalytics(string operation,
+            IEnumerable<ProjectObject> projects = null,
+            IEnumerable<ResourceObject> resources = null,
+            string projectId = null,
+            User user = null
+        )
+        {
+            if (CoscineLoggerConfiguration.IsLogLevelActivated(LogType.Analytics))
+            {
+                _analyticsLogObject.Type = "Action";
+                _analyticsLogObject.Operation = operation;
+
+                if (projects != null)
+                {
+                    List<string> projectList = new List<string>();
+                    foreach (var entry in projects)
+                    {
+                        projectList.Add(entry.Id.ToString());
+                    }
+                    _analyticsLogObject.ProjectList = projectList;
+                }
+                if (resources != null)
+                {
+                    List<string> shownResources = new List<string>();
+                    foreach (var entry in resources)
+                    {
+                        shownResources.Add(entry.Id.ToString());
+                    }
+                    _analyticsLogObject.ResourceList = shownResources;
+                }
+                if (projectId != null)
+                {
+                    _analyticsLogObject.ProjectId = projectId;
+                    if (user != null)
+                    {
+                        _analyticsLogObject.RoleId = _projectRoleModel.GetGetUserRoleForProject(new Guid(_analyticsLogObject.ProjectId), user.Id).ToString();
+                    }
+                }
+                _coscineLogger.AnalyticsLog(_analyticsLogObject);
+            }
+        }
     }
 }
diff --git a/src/Project/Controllers/ProjectRoleController.cs b/src/Project/Controllers/ProjectRoleController.cs
index ecb48d77371fe361fe985d47a3cf63e0d8f3b9f8..c6902e02c734b3a92a6cb2be4e7f2642d595bea8 100644
--- a/src/Project/Controllers/ProjectRoleController.cs
+++ b/src/Project/Controllers/ProjectRoleController.cs
@@ -10,6 +10,11 @@ using Microsoft.AspNetCore.Mvc;
 using System;
 using System.Linq;
 using Coscine.Database.Util;
+using Coscine.Logging;
+using Microsoft.Extensions.Logging;
+using Newtonsoft.Json.Linq;
+using System.Collections.Generic;
+using Coscine.Database.DataModel;
 
 namespace Coscine.Api.Project.Controllers
 {
@@ -20,13 +25,18 @@ namespace Coscine.Api.Project.Controllers
         private readonly ProjectRoleModel _projectRoleModel;
         private readonly Emitter _emitter;
         private readonly IConfiguration _configuration;
+        private readonly CoscineLogger _coscineLogger;
+        private readonly AnalyticsLogObject _analyticsLogObject;
 
-        public ProjectRoleController()
+        public ProjectRoleController(ILogger<ProjectRoleController> logger)
         {
             _emitter = new Emitter(Program.Configuration);
             _authenticator = new Authenticator(this, Program.Configuration);
             _projectRoleModel = new ProjectRoleModel();
             _configuration = Program.Configuration;
+
+            _coscineLogger = new CoscineLogger(logger);
+            _analyticsLogObject = new AnalyticsLogObject();
         }
 
         [Route("[controller]/{projectId}")]
@@ -40,7 +50,7 @@ namespace Coscine.Api.Project.Controllers
 
             if (projectModel.HasAccess(user, projectModel.GetById(projectIdGuid), UserRoles.Owner, UserRoles.Member))
             {
-                return Json(_projectRoleModel.GetAllWhere((projectRole) =>
+                var users = _projectRoleModel.GetAllWhere((projectRole) =>
                     (projectRole.ProjectId == projectIdGuid)
                 ).Select((projectRole) =>
                 {
@@ -55,7 +65,10 @@ namespace Coscine.Api.Project.Controllers
                         role = roleModel.GetById(projectRole.RoleId);
                     }
                     return new ProjectRoleObject(projectRole.ProjectId, new UserObject(userInst.Id, userInst.DisplayName, userInst.Givenname, userInst.Surname, userInst.EmailAddress), new RoleObject(role.Id, role.DisplayName));
-                }));
+                });
+                LogAnalytics("View Users", user, users);
+
+                return Json(users);
             }
             else
             {
@@ -63,6 +76,8 @@ namespace Coscine.Api.Project.Controllers
             }
         }
 
+        
+
         //Get all roles for current user and given project
         [HttpGet("[controller]/project/{projectId}")]
         public IActionResult Get(string projectId)
@@ -98,12 +113,16 @@ namespace Coscine.Api.Project.Controllers
 
             if (projectModel.HasAccess(user, project, UserRoles.Owner))
             {
+                var userIsAlreadymember = projectModel.HasAccess(userToAdd, project, UserRoles.Owner, UserRoles.Member);
                 _emitter.EmitUserAdd(new UserEventArgs(_configuration)
                 {
                     Project = project,
                     Role = role,
                     User = userToAdd
                 });
+
+                LogAnalytics(userIsAlreadymember == true ? "Change Role" : "Add Member", user, null, project.Id.ToString());
+
                 return Json(_projectRoleModel.SetFromObject(projectRoleObject));
             }
             else
@@ -132,6 +151,8 @@ namespace Coscine.Api.Project.Controllers
                     User = userToRemove
                 });
 
+                LogAnalytics("Remove User", user, null, project.Id.ToString());
+
                 return Json(_projectRoleModel.Delete(_projectRoleModel.GetWhere((projectRole) =>
                         projectRole.ProjectId == projectId
                         && projectRole.UserId == userId
@@ -142,5 +163,34 @@ namespace Coscine.Api.Project.Controllers
                 return Unauthorized("The user is not authorized to delete a project role for the given project!");
             }
         }
+        private void LogAnalytics(string operation,
+            User user,
+            IEnumerable<ProjectRoleObject> users = null,
+            string projectId = null
+        )
+        {
+            if (CoscineLoggerConfiguration.IsLogLevelActivated(LogType.Analytics))
+            {
+                _analyticsLogObject.Type = "Action";
+                _analyticsLogObject.Operation = operation;
+
+                if (users != null)
+                {
+                    List<string> shownUsers = new List<string>();
+                    foreach (var entry in users)
+                    {
+                        shownUsers.Add(entry.User.Id.ToString());
+                    }
+                    _analyticsLogObject.UserList = shownUsers;
+                }
+
+                if (projectId != null)
+                {
+                    _analyticsLogObject.ProjectId = projectId;
+                    _analyticsLogObject.RoleId = _projectRoleModel.GetGetUserRoleForProject(new Guid(_analyticsLogObject.ProjectId), user.Id).ToString();
+                }
+                _coscineLogger.AnalyticsLog(_analyticsLogObject);
+            }
+        }
     }
 }
diff --git a/src/Project/Controllers/SearchController.cs b/src/Project/Controllers/SearchController.cs
index 64f5b53c2c651daf6f7f2fa2dd835ef17904d440..c0b3daa62af72d8b3c5c9784fb284eb92fe63762 100644
--- a/src/Project/Controllers/SearchController.cs
+++ b/src/Project/Controllers/SearchController.cs
@@ -9,6 +9,9 @@ using Newtonsoft.Json;
 using Newtonsoft.Json.Linq;
 using Microsoft.AspNetCore.Authorization;
 using Coscine.Database.Util;
+using Microsoft.Extensions.Logging;
+using Coscine.Database.Models;
+using Coscine.Logging;
 
 namespace Coscine.Api.Project.Controllers
 {
@@ -16,10 +19,17 @@ namespace Coscine.Api.Project.Controllers
     public class SearchController : Controller
     {
         private readonly Authenticator _authenticator;
+        private readonly ProjectRoleModel _projectRoleModel;
+        private readonly CoscineLogger _coscineLogger;
+        private readonly AnalyticsLogObject _analyticsLogObject;
 
-        public SearchController()
+        public SearchController(ILogger<SearchController> logger)
         {
             _authenticator = new Authenticator(this, Program.Configuration);
+            _projectRoleModel = new ProjectRoleModel();
+
+            _coscineLogger = new CoscineLogger(logger);
+            _analyticsLogObject = new AnalyticsLogObject();
         }
 
         [HttpGet("[controller]/allNoFilter/")]
@@ -96,11 +106,10 @@ namespace Coscine.Api.Project.Controllers
 
             // search and ad results for sub-projects
             json["SubProjects"] = SearchForProjects(userId, searchQuery, projectId, list, true);
-
+            LogAnalytics("View Search Results", userId, projectId, json);
             return json;
         }
 
-
         private List<Guid> GetAllSubProjects(string projectId)
         {
             var list = new List<Guid>();
@@ -216,5 +225,38 @@ namespace Coscine.Api.Project.Controllers
 
             });
         }
+
+
+        private void LogAnalytics(string operation, Guid userId, string projectId, JObject json)
+        {
+            if (CoscineLoggerConfiguration.IsLogLevelActivated(LogType.Analytics))
+            {
+                List<string> projects = new List<string>();
+                foreach (var entry in json["Projects"])
+                {
+                    projects.Add(entry["Id"].ToString());
+                }
+                foreach (var entry in json["SubProjects"])
+                {
+                    projects.Add(entry["Id"].ToString());
+                }
+                List<string> resources = new List<string>();
+                foreach (var entry in json["Resources"])
+                {
+                    resources.Add(entry["Id"].ToString());
+                }
+
+                _analyticsLogObject.Type = "Action";
+                _analyticsLogObject.Operation = operation;
+                if (!projectId.Equals(""))
+                {
+                    _analyticsLogObject.ProjectId = projectId;
+                    _analyticsLogObject.RoleId = _projectRoleModel.GetGetUserRoleForProject(new Guid(_analyticsLogObject.ProjectId), userId).ToString();
+                }
+                _analyticsLogObject.ProjectList = projects;
+                _analyticsLogObject.ResourceList = resources;
+                _coscineLogger.AnalyticsLog(_analyticsLogObject);
+            }
+        }
     }
 }
\ No newline at end of file
diff --git a/src/Project/Project.csproj b/src/Project/Project.csproj
index 5fce8a6995f18642bd92dbba9688deccde8f32dd..0e822d23b220369f29f67188de4fa5d213518f1f 100644
--- a/src/Project/Project.csproj
+++ b/src/Project/Project.csproj
@@ -52,17 +52,17 @@
     <Reference Include="Coscine.Action, Version=1.10.0.0, Culture=neutral, processorArchitecture=AMD64">
       <HintPath>..\packages\Coscine.Action.1.10.0\lib\net461\Coscine.Action.dll</HintPath>
     </Reference>
-    <Reference Include="Coscine.ApiCommons, Version=1.6.3.0, Culture=neutral, PublicKeyToken=af4c1345df96546b, processorArchitecture=MSIL">
-      <HintPath>..\packages\Coscine.ApiCommons.1.6.3\lib\net461\Coscine.ApiCommons.dll</HintPath>
+    <Reference Include="Coscine.ApiCommons, Version=1.7.0.0, Culture=neutral, PublicKeyToken=af4c1345df96546b, processorArchitecture=MSIL">
+      <HintPath>..\packages\Coscine.ApiCommons.1.7.0-topic-671-readab0004\lib\net461\Coscine.ApiCommons.dll</HintPath>
     </Reference>
     <Reference Include="Coscine.Configuration, Version=1.4.0.0, Culture=neutral, PublicKeyToken=ce3d7a32d7dc1e5a, processorArchitecture=MSIL">
       <HintPath>..\packages\Coscine.Configuration.1.4.0\lib\net461\Coscine.Configuration.dll</HintPath>
     </Reference>
-    <Reference Include="Coscine.Database, Version=1.16.0.0, Culture=neutral, PublicKeyToken=767d77427707b70a, processorArchitecture=MSIL">
-      <HintPath>..\packages\Coscine.Database.1.16.0\lib\net461\Coscine.Database.dll</HintPath>
+    <Reference Include="Coscine.Database, Version=1.17.0.0, Culture=neutral, PublicKeyToken=767d77427707b70a, processorArchitecture=MSIL">
+      <HintPath>..\packages\Coscine.Database.1.17.0-topic-671-readab0003\lib\net461\Coscine.Database.dll</HintPath>
     </Reference>
-    <Reference Include="Coscine.Logging, Version=1.0.1.0, Culture=neutral, PublicKeyToken=e1ed402bc3f6525e, processorArchitecture=MSIL">
-      <HintPath>..\packages\Coscine.Logging.1.0.1\lib\net461\Coscine.Logging.dll</HintPath>
+    <Reference Include="Coscine.Logging, Version=1.1.0.0, Culture=neutral, PublicKeyToken=e1ed402bc3f6525e, processorArchitecture=MSIL">
+      <HintPath>..\packages\Coscine.Logging.1.1.0-topic-671-readab0010\lib\net461\Coscine.Logging.dll</HintPath>
     </Reference>
     <Reference Include="Coscine.ProxyApi, Version=1.2.1.0, Culture=neutral, processorArchitecture=MSIL">
       <HintPath>..\packages\Coscine.ProxyApi.1.2.1\lib\net461\Coscine.ProxyApi.dll</HintPath>
diff --git a/src/Project/packages.config b/src/Project/packages.config
index e2ad61c7d93bc9fc7ddb7dd1046d9452c83606c4..93c9a5412286d91f27e0494f083b131a80137763 100644
--- a/src/Project/packages.config
+++ b/src/Project/packages.config
@@ -5,10 +5,10 @@
   <package id="Castle.Core" version="4.4.0" targetFramework="net472" />
   <package id="Consul" version="0.7.2.6" targetFramework="net472" />
   <package id="Coscine.Action" version="1.10.0" targetFramework="net472" />
-  <package id="Coscine.ApiCommons" version="1.6.3" targetFramework="net472" />
+  <package id="Coscine.ApiCommons" version="1.7.0-topic-671-readab0004" targetFramework="net472" />
   <package id="Coscine.Configuration" version="1.4.0" targetFramework="net472" />
-  <package id="Coscine.Database" version="1.16.0" targetFramework="net472" />
-  <package id="Coscine.Logging" version="1.0.1" targetFramework="net472" />
+  <package id="Coscine.Database" version="1.17.0-topic-671-readab0003" targetFramework="net472" />
+  <package id="Coscine.Logging" version="1.1.0-topic-671-readab0010" targetFramework="net472" />
   <package id="Coscine.ProxyApi" version="1.2.1" targetFramework="net472" />
   <package id="Coscine.SharePoint.Webparts.Vue" version="1.5.0" targetFramework="net472" />
   <package id="EntityFramework" version="6.2.0" targetFramework="net472" />