This commit is contained in:
Sebastiaan Janssen
2012-12-26 15:25:43 -01:00
3 changed files with 50 additions and 72 deletions

View File

@@ -1,7 +1,8 @@
using System;
using System.Data;
using System.Diagnostics;
using System.Globalization;
using System.Threading;
using Umbraco.Core.IO;
using Umbraco.Core.Logging;
using umbraco.DataLayer;
using System.Collections.Generic;
@@ -16,32 +17,31 @@ namespace umbraco.BusinessLogic
public class Log
{
#region Statics
private Interfaces.ILog m_externalLogger = null;
private bool m_externalLoggerInitiated = false;
private Interfaces.ILog _externalLogger;
private bool _externalLoggerInitiated;
internal Interfaces.ILog ExternalLogger
{
get
{
if (!m_externalLoggerInitiated)
if (!_externalLoggerInitiated)
{
m_externalLoggerInitiated = true;
if (!String.IsNullOrEmpty(UmbracoSettings.ExternalLoggerAssembly)
&& !String.IsNullOrEmpty(UmbracoSettings.ExternalLoggerType))
_externalLoggerInitiated = true;
if (!string.IsNullOrEmpty(UmbracoSettings.ExternalLoggerAssembly) && !string.IsNullOrEmpty(UmbracoSettings.ExternalLoggerType))
{
try
{
string assemblyPath = IO.IOHelper.MapPath(UmbracoSettings.ExternalLoggerAssembly);
m_externalLogger = Assembly.LoadFrom(assemblyPath).CreateInstance(UmbracoSettings.ExternalLoggerType) as Interfaces.ILog;
var assemblyPath = IOHelper.MapPath(UmbracoSettings.ExternalLoggerAssembly);
_externalLogger = Assembly.LoadFrom(assemblyPath).CreateInstance(UmbracoSettings.ExternalLoggerType) as Interfaces.ILog;
}
catch (Exception ee)
{
LogHelper.Error<Log>("Error loading external logger: " + ee.ToString(), ee);
LogHelper.Error<Log>("Error loading external logger", ee);
}
}
}
return m_externalLogger;
return _externalLogger;
}
}
@@ -73,8 +73,7 @@ namespace umbraco.BusinessLogic
{
Instance.ExternalLogger.Add(type, user, nodeId, comment);
// Audit trail too?
if (!UmbracoSettings.ExternalLoggerLogAuditTrail && type.GetType().GetField(type.ToString()).GetCustomAttributes(typeof(AuditTrailLogItem), true) != null)
if (!UmbracoSettings.ExternalLoggerLogAuditTrail)
{
AddLocally(type, user, nodeId, comment);
}
@@ -110,12 +109,9 @@ namespace umbraco.BusinessLogic
}
else
{
Exception ex2 = ee;
string error = String.Empty;
string errorMessage = string.Empty;
var ex2 = ee;
while (ex2 != null)
{
error += ex2.ToString();
ex2 = ex2.InnerException;
}
LogHelper.Error<Log>("An error occurred", ee);
@@ -164,19 +160,28 @@ namespace umbraco.BusinessLogic
/// <param name="comment">The comment.</param>
public static void AddSynced(LogTypes type, int userId, int nodeId, string comment)
{
try
var logTypeIsAuditType = type.GetType().GetField(type.ToString()).GetCustomAttributes(typeof(AuditTrailLogItem), true).Length != 0;
if (logTypeIsAuditType)
{
SqlHelper.ExecuteNonQuery(
"insert into umbracoLog (userId, nodeId, logHeader, logComment) values (@userId, @nodeId, @logHeader, @comment)",
SqlHelper.CreateParameter("@userId", userId),
SqlHelper.CreateParameter("@nodeId", nodeId),
SqlHelper.CreateParameter("@logHeader", type.ToString()),
SqlHelper.CreateParameter("@comment", comment));
try
{
SqlHelper.ExecuteNonQuery(
"insert into umbracoLog (userId, nodeId, logHeader, logComment) values (@userId, @nodeId, @logHeader, @comment)",
SqlHelper.CreateParameter("@userId", userId),
SqlHelper.CreateParameter("@nodeId", nodeId),
SqlHelper.CreateParameter("@logHeader", type.ToString()),
SqlHelper.CreateParameter("@comment", comment));
}
catch (Exception e)
{
Debug.WriteLine(e.ToString(), "Error");
Trace.WriteLine(e.ToString());
}
}
catch (Exception e)
else
{
Debug.WriteLine(e.ToString(), "Error");
Trace.WriteLine(e.ToString());
LogHelper.Info<Log>(string.Format("Redirected log call (please use Umbraco.Core.Logging.LogHelper instead of umbraco.BusinessLogic.Log) | Type: {0} | User: {1} | NodeId: {2} | Comment: {3}", type.ToString(), userId, nodeId.ToString(CultureInfo.InvariantCulture), comment));
}
}
@@ -184,18 +189,18 @@ namespace umbraco.BusinessLogic
{
if (UmbracoSettings.ExternalLoggerLogAuditTrail && ExternalLogger != null)
return ExternalLogger.GetAuditLogReader(NodeId);
else
return LogItem.ConvertIRecordsReader(SqlHelper.ExecuteReader(
"select userId, nodeId, logHeader, DateStamp, logComment from umbracoLog where nodeId = @id and logHeader not in ('open','system') order by DateStamp desc",
SqlHelper.CreateParameter("@id", NodeId)));
return LogItem.ConvertIRecordsReader(SqlHelper.ExecuteReader(
"select userId, nodeId, logHeader, DateStamp, logComment from umbracoLog where nodeId = @id and logHeader not in ('open','system') order by DateStamp desc",
SqlHelper.CreateParameter("@id", NodeId)));
}
public List<LogItem> GetLogItems(LogTypes type, DateTime sinceDate)
{
if (ExternalLogger != null)
return ExternalLogger.GetLogItems(type, sinceDate);
else
return LogItem.ConvertIRecordsReader(SqlHelper.ExecuteReader(
return LogItem.ConvertIRecordsReader(SqlHelper.ExecuteReader(
"select userId, NodeId, DateStamp, logHeader, logComment from umbracoLog where logHeader = @logHeader and DateStamp >= @dateStamp order by dateStamp desc",
SqlHelper.CreateParameter("@logHeader", type),
SqlHelper.CreateParameter("@dateStamp", sinceDate)));
@@ -205,8 +210,8 @@ namespace umbraco.BusinessLogic
{
if (ExternalLogger != null)
return ExternalLogger.GetLogItems(nodeId);
else
return LogItem.ConvertIRecordsReader(SqlHelper.ExecuteReader(
return LogItem.ConvertIRecordsReader(SqlHelper.ExecuteReader(
"select userId, NodeId, DateStamp, logHeader, logComment from umbracoLog where id = @id order by dateStamp desc",
SqlHelper.CreateParameter("@id", nodeId)));
}
@@ -215,8 +220,8 @@ namespace umbraco.BusinessLogic
{
if (ExternalLogger != null)
return ExternalLogger.GetLogItems(user, sinceDate);
else
return LogItem.ConvertIRecordsReader(SqlHelper.ExecuteReader(
return LogItem.ConvertIRecordsReader(SqlHelper.ExecuteReader(
"select userId, NodeId, DateStamp, logHeader, logComment from umbracoLog where UserId = @user and DateStamp >= @dateStamp order by dateStamp desc",
SqlHelper.CreateParameter("@user", user.Id),
SqlHelper.CreateParameter("@dateStamp", sinceDate)));
@@ -226,8 +231,8 @@ namespace umbraco.BusinessLogic
{
if (ExternalLogger != null)
return ExternalLogger.GetLogItems(user, type, sinceDate);
else
return LogItem.ConvertIRecordsReader(SqlHelper.ExecuteReader(
return LogItem.ConvertIRecordsReader(SqlHelper.ExecuteReader(
"select userId, NodeId, DateStamp, logHeader, logComment from umbracoLog where UserId = @user and logHeader = @logHeader and DateStamp >= @dateStamp order by dateStamp desc",
SqlHelper.CreateParameter("@logHeader", type),
SqlHelper.CreateParameter("@user", user.Id),
@@ -361,14 +366,14 @@ namespace umbraco.BusinessLogic
public static List<LogItem> ConvertIRecordsReader(IRecordsReader reader)
{
List<LogItem> items = new List<LogItem>();
var items = new List<LogItem>();
while (reader.Read())
{
items.Add(new LogItem(
reader.GetInt("userId"),
reader.GetInt("nodeId"),
reader.GetDateTime("DateStamp"),
convertLogHeader(reader.GetString("logHeader")),
ConvertLogHeader(reader.GetString("logHeader")),
reader.GetString("logComment")));
}
@@ -376,7 +381,7 @@ namespace umbraco.BusinessLogic
}
private static LogTypes convertLogHeader(string logHeader)
private static LogTypes ConvertLogHeader(string logHeader)
{
try
{
@@ -391,11 +396,5 @@ namespace umbraco.BusinessLogic
public class AuditTrailLogItem : Attribute
{
public AuditTrailLogItem()
{
}
}
}

View File

@@ -300,31 +300,10 @@ namespace umbraco.cms.businesslogic
/// <returns>The property with the given propertytype</returns>
public Property getProperty(PropertyType pt)
{
//object o = SqlHelper.ExecuteScalar<object>(
// "select id from cmsPropertyData where versionId=@version and propertyTypeId=@propertyTypeId",
// SqlHelper.CreateParameter("@version", this.Version),
// SqlHelper.CreateParameter("@propertyTypeId", pt.Id));
//if (o == null)
// return null;
//int propertyId;
//if (!int.TryParse(o.ToString(), out propertyId))
// return null;
//try
//{
// return new Property(propertyId, pt);
//}
//catch (Exception ex)
//{
// Log.Add(LogTypes.Error, this.Id, "An error occurred retreiving property. EXCEPTION: " + ex.Message);
// return null;
//}
EnsureProperties();
var prop = m_LoadedProperties
.Where(x => x.PropertyType.Id == pt.Id)
.SingleOrDefault();
var prop = m_LoadedProperties.SingleOrDefault(x => x.PropertyType.Id == pt.Id);
return prop;
}

View File

@@ -417,7 +417,7 @@ namespace umbraco.cms.businesslogic.web
d.OnNew(e);
// Log
Log.Add(LogTypes.New, u, d.Id, "");
LogHelper.Info<Document>(string.Format("New document {0}", d.Id));
// Run Handler
umbraco.BusinessLogic.Actions.Action.RunActionHandlers(d, ActionNew.Instance);