adjusted logback.xml to facilitate two populated logs for different purposes; brief pass over all instance of log calls

This commit is contained in:
Jason_DiDonato@yahoo.com 2021-03-21 08:09:41 -04:00
parent 873f19db5e
commit 39d68b537d
28 changed files with 365 additions and 316 deletions

View file

@ -10,24 +10,77 @@
</filter> </filter>
</appender> </appender>
<appender name="FILE-DEBUG" class="ch.qos.logback.core.FileAppender"> <appender name="FILE-GENERAL" class="ch.qos.logback.core.rolling.RollingFileAppender">
<file>logs/pslogin-debug_${bySecond}.log</file> <file>logs/psforever-general_${bySecond}.log</file>
<rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
<fileNamePattern>logs/psforever-general_%d{yyyy-MM-dd}.gz</fileNamePattern>
<maxHistory>40</maxHistory>
<totalSizeCap>10GB</totalSizeCap>
</rollingPolicy>
<encoder> <encoder>
<pattern>%date{ISO8601} %5level "%X" %logger{35} - %msg%n</pattern> <pattern>%date{ISO8601} %5level "%X" %logger{35} - %msg%n</pattern>
</encoder> </encoder>
<filter class="net.psforever.filters.LoggerPrefixFilter">
<!--
c.g.j.s.d.p.c.PostgreSQLConnectionHandler
-->
<prefix>com.github.jasync.sql.db.postgresql.codec</prefix>
</filter>
<filter class="net.psforever.filters.LoggerPrefixFilter">
<!--
i.s.c.AbstractConnection.lockdown
i.sentry.connection.AsyncConnection
-->
<prefix>io.sentry.connection</prefix>
</filter>
<filter class="net.psforever.filters.LoggerPrefixFilter">
<!-- damage log -->
<prefix>DamageResolution</prefix>
</filter>
<filter class="ch.qos.logback.classic.filter.ThresholdFilter"> <filter class="ch.qos.logback.classic.filter.ThresholdFilter">
<level>DEBUG</level> <level>INFO</level>
</filter> </filter>
</appender> </appender>
<appender name="FILE-TRACE" class="ch.qos.logback.core.FileAppender"> <appender name="FILE-DEBUG" class="ch.qos.logback.core.rolling.RollingFileAppender">
<file>logs/pslogin-trace_${bySecond}.log</file> <file>logs/psforever-debug_${bySecond}.log</file>
<rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
<fileNamePattern>logs/psforever-debug_%d{yyyy-MM-dd}.gz</fileNamePattern>
<maxHistory>40</maxHistory>
<totalSizeCap>10GB</totalSizeCap>
</rollingPolicy>
<encoder> <encoder>
<pattern>%date{ISO8601} [%thread] %5level "%X" %logger{35} - %msg%n</pattern> <pattern>%date{ISO8601} [%thread] %5level "%X" %logger{35} - %msg%n</pattern>
</encoder> </encoder>
<filter class="ch.qos.logback.classic.filter.ThresholdFilter"> <filter class="net.psforever.filters.LoggerPrefixFilter">
<level>OFF</level> <!--
<!--<level>TRACE</level>--> c.g.j.s.d.p.e.CloseStatementEncoder
c.g.j.s.d.p.e.PreparedStatementEncoderHelper
c.g.j.s.d.p.e.PreparedStatementOpeningEncoder
c.g.j.s.d.p.e.QueryMessageEncoder
-->
<prefix>com.github.jasync.sql.db.postgresql.encoders</prefix>
</filter>
<filter class="net.psforever.filters.LoggerPrefixFilter">
<!--
c.g.j.s.d.p.PostgreSQLConnection?
c.g.j.s.d.p.c.PostgreSQLConnectionHandler
-->
<prefix>com.github.jasync.sql.db.postgresql.codec</prefix>
</filter>
<filter class="net.psforever.filters.LoggerPrefixFilter">
<!-- i.g.context.jasync.JAsyncContext -->
<prefix>io.getquill.context.jasync</prefix>
</filter>
<filter class="ch.qos.logback.classic.filter.LevelFilter">
<level>DEBUG</level>
<onMatch>ACCEPT</onMatch>
<onMismatch>DENY</onMismatch>
</filter>
<filter class="ch.qos.logback.classic.filter.LevelFilter">
<level>TRACE</level>
<onMatch>ACCEPT</onMatch>
<onMismatch>DENY</onMismatch>
</filter> </filter>
</appender> </appender>
@ -39,7 +92,7 @@
<root level="TRACE"> <root level="TRACE">
<appender-ref ref="STDOUT"/> <appender-ref ref="STDOUT"/>
<appender-ref ref="FILE-TRACE"/> <appender-ref ref="FILE-GENERAL"/>
<appender-ref ref="FILE-DEBUG"/> <appender-ref ref="FILE-DEBUG"/>
<appender-ref ref="Sentry"/> <appender-ref ref="Sentry"/>
</root> </root>

View file

@ -0,0 +1,35 @@
// Copyright (c) 2021 PSForever
package net.psforever.filters;
import ch.qos.logback.classic.spi.ILoggingEvent;
import ch.qos.logback.core.filter.Filter;
import ch.qos.logback.core.spi.FilterReply;
/**
* Disrupts a variety of logging messages that originate from specific loggers.
* A comparison of the prefix text of the logger handling the event is performed,
* with a positive match denying that event being appended.
* The full prefix must be provided, as the is occasionally appear in an abbreviated form.
*/
public class LoggerPrefixFilter extends Filter<ILoggingEvent> {
private String prefix;
@Override
public FilterReply decide(ILoggingEvent event) {
if (isStarted() && event.getLoggerName().startsWith(prefix)) {
return FilterReply.DENY;
} else {
return FilterReply.NEUTRAL;
}
}
public void setPrefix(String name) {
this.prefix = name;
}
public void start() {
if (this.prefix != null) {
super.start();
}
}
}

View file

@ -100,10 +100,9 @@ class LoginActor(middlewareActor: typed.ActorRef[MiddlewareActor.Command], conne
val clientVersion = s"Client Version: $majorVersion.$minorVersion.$revision, $buildDate" val clientVersion = s"Client Version: $majorVersion.$minorVersion.$revision, $buildDate"
if (token.isDefined) if (token.isDefined)
log.info(s"New login UN:$username Token:${token.get}. $clientVersion") log.trace(s"New login UN:$username Token:${token.get}. $clientVersion")
else { else {
// log.info(s"New login UN:$username PW:$password. $clientVersion") log.trace(s"New login UN:$username. $clientVersion")
log.info(s"New login UN:$username. $clientVersion")
} }
accountLogin(username, password.get) accountLogin(username, password.get)
@ -115,7 +114,7 @@ class LoginActor(middlewareActor: typed.ActorRef[MiddlewareActor.Command], conne
middlewareActor ! MiddlewareActor.Close() middlewareActor ! MiddlewareActor.Close()
case _ => case _ =>
log.debug(s"Unhandled GamePacket $pkt") log.warn(s"Unhandled GamePacket $pkt")
} }
def accountLogin(username: String, password: String): Unit = { def accountLogin(username: String, password: String): Unit = {
@ -212,7 +211,7 @@ class LoginActor(middlewareActor: typed.ActorRef[MiddlewareActor.Command], conne
} }
def loginFailureResponse(username: String, newToken: String) = { def loginFailureResponse(username: String, newToken: String) = {
log.info("DB problem") log.warn("DB problem")
middlewareActor ! MiddlewareActor.Send( middlewareActor ! MiddlewareActor.Send(
LoginRespMessage( LoginRespMessage(
newToken, newToken,
@ -227,7 +226,7 @@ class LoginActor(middlewareActor: typed.ActorRef[MiddlewareActor.Command], conne
} }
def loginAccountFailureResponse(username: String, newToken: String) = { def loginAccountFailureResponse(username: String, newToken: String) = {
log.info(s"Account $username inactive") log.warn(s"Account $username inactive")
middlewareActor ! MiddlewareActor.Send( middlewareActor ! MiddlewareActor.Send(
LoginRespMessage( LoginRespMessage(
newToken, newToken,

View file

@ -82,7 +82,7 @@ object SocketActor {
socketActor ! toSocket(message) socketActor ! toSocket(message)
} }
} else { } else {
log.info("Network simulator dropped packet") log.trace("Network simulator dropped packet")
} }
} }

View file

@ -485,14 +485,20 @@ class AvatarActor(
ItemTransactionResultMessage(terminalGuid, TransactionType.Learn, success = false) ItemTransactionResultMessage(terminalGuid, TransactionType.Learn, success = false)
) )
} else { } else {
var requiredByCert: Set[Certification] = Set(certification)
val deps = Certification.values.filter(_.requires.contains(certification)).toSet var removeThese: Set[Certification] = Set(certification)
val remove = deps ++ Certification.values.filter(_.replaces.intersect(deps).nonEmpty).toSet + certification val allCerts: Set[Certification] = Certification.values.toSet
do {
removeThese = allCerts.filter { testingCert =>
testingCert.requires.intersect(removeThese).nonEmpty
}
requiredByCert = requiredByCert ++ removeThese
} while(removeThese.nonEmpty)
Future Future
.sequence( .sequence(
avatar.certifications avatar.certifications
.intersect(remove) .intersect(requiredByCert)
.map(cert => { .map(cert => {
ctx ctx
.run( .run(
@ -511,7 +517,7 @@ class AvatarActor(
ItemTransactionResultMessage(terminalGuid, TransactionType.Sell, success = false) ItemTransactionResultMessage(terminalGuid, TransactionType.Sell, success = false)
) )
case Success(certs) => case Success(certs) =>
context.self ! ReplaceAvatar(avatar.copy(certifications = avatar.certifications.diff(remove))) context.self ! ReplaceAvatar(avatar.copy(certifications = avatar.certifications.diff(certs)))
certs.foreach { cert => certs.foreach { cert =>
sessionActor ! SessionActor.SendResponse( sessionActor ! SessionActor.SendResponse(
PlanetsideAttributeMessage(session.get.player.GUID, 25, cert.value) PlanetsideAttributeMessage(session.get.player.GUID, 25, cert.value)

View file

@ -121,8 +121,6 @@ class ChatActor(
Behaviors.same Behaviors.same
case Message(message) => case Message(message) =>
log.info("Chat: " + message)
val gmCommandAllowed = val gmCommandAllowed =
session.account.gm || Config.app.development.unprivilegedGmCommands.contains(message.messageType) session.account.gm || Config.app.development.unprivilegedGmCommands.contains(message.messageType)
@ -916,7 +914,7 @@ class ChatActor(
} }
case _ => case _ =>
log.info(s"unhandled chat message $message") log.warn(s"Unhandled chat message $message")
} }
Behaviors.same Behaviors.same
@ -945,7 +943,7 @@ class ChatActor(
val args = message.contents.split(" ") val args = message.contents.split(" ")
val (name, time) = (args.lift(0), args.lift(1)) match { val (name, time) = (args.lift(0), args.lift(1)) match {
case (Some(name), _) if name != session.player.Name => case (Some(name), _) if name != session.player.Name =>
log.error("received silence message for other player") log.error("Received silence message for other player")
(None, None) (None, None)
case (Some(name), None) => (Some(name), Some(5)) case (Some(name), None) => (Some(name), Some(5))
case (Some(name), Some(time)) if time.toIntOption.isDefined => (Some(name), Some(time.toInt)) case (Some(name), Some(time)) if time.toIntOption.isDefined => (Some(name), Some(time.toInt))
@ -976,11 +974,11 @@ class ChatActor(
} }
case (name, time) => case (name, time) =>
log.error(s"bad silence args $name $time") log.warn(s"Bad silence args $name $time")
} }
case _ => case _ =>
log.error(s"unexpected messageType $message") log.warn(s"Unexpected messageType $message")
} }
Behaviors.same Behaviors.same

View file

@ -26,7 +26,7 @@ class TcpListener[T <: Actor](actorClass: Class[T], nextActorName: String, liste
def receive = { def receive = {
case Tcp.Bound(local) => case Tcp.Bound(local) =>
log.info(s"Now listening on TCP:$local") log.debug(s"Now listening on TCP:$local")
context.become(ready(sender())) context.become(ready(sender()))
case Tcp.CommandFailed(Tcp.Bind(_, address, _, _, _)) => case Tcp.CommandFailed(Tcp.Bind(_, address, _, _, _)) =>

View file

@ -128,7 +128,6 @@ object Deployables {
* @param avatar the player's core * @param avatar the player's core
*/ */
def InitializeDeployableQuantities(avatar: Avatar): Boolean = { def InitializeDeployableQuantities(avatar: Avatar): Boolean = {
log.info("Setting up combat engineering ...")
avatar.deployables.Initialize(avatar.certifications) avatar.deployables.Initialize(avatar.certifications)
} }
@ -137,7 +136,6 @@ object Deployables {
* @param avatar the player's core * @param avatar the player's core
*/ */
def InitializeDeployableUIElements(avatar: Avatar): List[(Int, Int, Int, Int)] = { def InitializeDeployableUIElements(avatar: Avatar): List[(Int, Int, Int, Int)] = {
log.info("Setting up combat engineering UI ...")
avatar.deployables.UpdateUI() avatar.deployables.UpdateUI()
} }

View file

@ -226,7 +226,7 @@ object Vehicles {
* @param unk na; used by `HackMessage` as `unk5` * @param unk na; used by `HackMessage` as `unk5`
*/ */
def FinishHackingVehicle(target: Vehicle, hacker: Player, unk: Long)(): Unit = { def FinishHackingVehicle(target: Vehicle, hacker: Player, unk: Long)(): Unit = {
log.info(s"Vehicle guid: ${target.GUID} has been jacked") log.info(s"Vehicle ${target.Definition.Name}#${target.GUID.guid} has been jacked by ${hacker.Name}")
val zone = target.Zone val zone = target.Zone
// Forcefully dismount any cargo // Forcefully dismount any cargo
target.CargoHolds.values.foreach(cargoHold => { target.CargoHolds.values.foreach(cargoHold => {

View file

@ -328,7 +328,7 @@ class PlayerControl(player: Player, avatarActor: typed.ActorRef[AvatarActor.Comm
) )
case Terminal.InfantryLoadout(exosuit, subtype, holsters, inventory) => case Terminal.InfantryLoadout(exosuit, subtype, holsters, inventory) =>
log.info(s"wants to change equipment loadout to their option #${msg.unk1 + 1}") log.info(s"${player.Name} wants to change equipment loadout to their option #${msg.unk1 + 1}")
val fallbackSubtype = 0 val fallbackSubtype = 0
val fallbackSuit = ExoSuitType.Standard val fallbackSuit = ExoSuitType.Standard
val originalSuit = player.ExoSuit val originalSuit = player.ExoSuit
@ -371,7 +371,7 @@ class PlayerControl(player: Player, avatarActor: typed.ActorRef[AvatarActor.Comm
(exosuit, subtype) (exosuit, subtype)
} else { } else {
log.warn( log.warn(
s"no longer has permission to wear the exo-suit type $exosuit; will wear $fallbackSuit instead" s"${player.Name} no longer has permission to wear the exo-suit type $exosuit; will wear $fallbackSuit instead"
) )
(fallbackSuit, fallbackSubtype) (fallbackSuit, fallbackSubtype)
} }
@ -710,6 +710,12 @@ class PlayerControl(player: Player, avatarActor: typed.ActorRef[AvatarActor.Comm
super.CancelJammeredStatus(target) super.CancelJammeredStatus(target)
//uninitialize implants //uninitialize implants
avatarActor ! AvatarActor.DeinitializeImplants() avatarActor ! AvatarActor.DeinitializeImplants()
cause.adversarial match {
case Some(a) =>
damageLog.info(s"DisplayDestroy: ${a.defender} was killed by ${a.attacker}")
case _ =>
damageLog.info(s"DisplayDestroy: ${player.Name} killed ${if(player.Sex==CharacterGender.Male){"himself"}else{"herself"}}.")
}
events ! AvatarServiceMessage( events ! AvatarServiceMessage(
nameChannel, nameChannel,
AvatarAction.Killed(player_guid, target.VehicleSeated) AvatarAction.Killed(player_guid, target.VehicleSeated)

View file

@ -44,7 +44,7 @@ class NumberPoolActor(pool: NumberPool) extends Actor {
sender() ! NumberPoolActor.ReturnNumberResult(number, ex, id) sender() ! NumberPoolActor.ReturnNumberResult(number, ex, id)
case msg => case msg =>
log.info(s"received an unexpected message - ${msg.toString}") log.warn(s"Received an unexpected message - ${msg.toString}")
} }
} }

View file

@ -103,7 +103,7 @@ class UniqueNumberSystem(private val guid: NumberPoolHub, private val poolActors
} }
} catch { } catch {
case _: Exception => case _: Exception =>
log.info(s"$obj is already unregistered") log.warn(s"$obj is already unregistered")
callback ! Success(obj) callback ! Success(obj)
} }

View file

@ -104,7 +104,7 @@ object GenericHackables {
def FinishHacking(target: PlanetSideServerObject with Hackable, user: Player, unk: Long)(): Unit = { def FinishHacking(target: PlanetSideServerObject with Hackable, user: Player, unk: Long)(): Unit = {
import akka.pattern.ask import akka.pattern.ask
import scala.concurrent.duration._ import scala.concurrent.duration._
log.info(s"Hacked a $target") log.info(s"${user.Name} hacked a ${target.Definition.Name}")
// Wait for the target actor to set the HackedBy property, otherwise LocalAction.HackTemporarily will not complete properly // Wait for the target actor to set the HackedBy property, otherwise LocalAction.HackTemporarily will not complete properly
import scala.concurrent.ExecutionContext.Implicits.global import scala.concurrent.ExecutionContext.Implicits.global
val tplayer = user val tplayer = user

View file

@ -41,7 +41,7 @@ class IFFLockControl(lock: IFFLock)
) )
} else { } else {
val log = org.log4s.getLogger val log = org.log4s.getLogger
log.warn("IFF lock is being hacked, but don't know how to handle this state:") log.warn(s"IFF lock is being hacked by ${player.Faction}, but don't know how to handle this state:")
log.warn(s"Lock - Faction=${lock.Faction}, HackedBy=${lock.HackedBy}") log.warn(s"Lock - Faction=${lock.Faction}, HackedBy=${lock.HackedBy}")
log.warn(s"Player - Faction=${player.Faction}") log.warn(s"Player - Faction=${player.Faction}")
} }

View file

@ -0,0 +1,57 @@
// Copyright (c) 2020 PSForever
package net.psforever.objects.serverobject.terminals
import net.psforever.objects.Player
import net.psforever.objects.serverobject.CommonMessages
import net.psforever.objects.serverobject.terminals.capture.CaptureTerminal
import net.psforever.services.local.{LocalAction, LocalServiceMessage}
import scala.util.{Failure, Success}
object CaptureTerminals {
private val log = org.log4s.getLogger("CaptureTerminals")
/**
* The process of hacking an object is completed.
* Pass the message onto the hackable object and onto the local events system.
* @param target the `Hackable` object that has been hacked
* @param unk na;
* used by `HackMessage` as `unk5`
* @see `HackMessage`
*/
//TODO add params here depending on which params in HackMessage are important
def FinishHackingCaptureConsole(target: CaptureTerminal, hackingPlayer: Player, unk: Long)(): Unit = {
import akka.pattern.ask
import scala.concurrent.duration._
log.info(s"${hackingPlayer.toString} Hacked a ${target.toString}")
// Wait for the target actor to set the HackedBy property
import scala.concurrent.ExecutionContext.Implicits.global
ask(target.Actor, CommonMessages.Hack(hackingPlayer, target))(1 second).mapTo[Boolean].onComplete {
case Success(_) =>
target.Zone.LocalEvents ! LocalServiceMessage(
target.Zone.id,
LocalAction.TriggerSound(hackingPlayer.GUID, target.HackSound, hackingPlayer.Position, 30, 0.49803925f)
)
val isResecured = hackingPlayer.Faction == target.Faction
if (isResecured) {
// Resecure the CC
target.Zone.LocalEvents ! LocalServiceMessage(
target.Zone.id,
LocalAction.ResecureCaptureTerminal(
target
)
)
}
else {
// Start the CC hack timer
target.Zone.LocalEvents ! LocalServiceMessage(
target.Zone.id,
LocalAction.StartCaptureTerminalHack(
target
)
)
}
case Failure(_) => log.warn(s"Hack message failed on target guid: ${target.GUID}")
}
}
}

View file

@ -160,8 +160,6 @@ object CargoBehavior {
VehicleAction.SendResponse(PlanetSideGUID(0), PlanetsideAttributeMessage(cargoGUID, 68, cargo.Shields)) VehicleAction.SendResponse(PlanetSideGUID(0), PlanetsideAttributeMessage(cargoGUID, 68, cargo.Shields))
) )
val (attachMsg, mountPointMsg) = CargoMountBehaviorForAll(carrier, cargo, mountPoint) val (attachMsg, mountPointMsg) = CargoMountBehaviorForAll(carrier, cargo, mountPoint)
log.info(s"HandleCheckCargoMounting: $attachMsg")
log.info(s"HandleCheckCargoMounting: $mountPointMsg")
false false
} else if (distance > 625 || iteration >= 40) { } else if (distance > 625 || iteration >= 40) {
//vehicles moved too far away or took too long to get into proper position; abort mounting //vehicles moved too far away or took too long to get into proper position; abort mounting

View file

@ -33,29 +33,29 @@ class AccountIntermediaryService extends Actor {
// Called by the LoginSessionActor // Called by the LoginSessionActor
case StoreAccountData(token, account) => case StoreAccountData(token, account) =>
accountsByToken += (token -> account) accountsByToken += (token -> account)
log.info(s"Storing intermediary account data for ${account.id}") log.trace(s"Storing intermediary account data for ${account.id}")
// Called by the WorldSessionActor // Called by the WorldSessionActor
case RetrieveAccountData(token) => case RetrieveAccountData(token) =>
accountsByToken.remove(token) match { accountsByToken.remove(token) match {
case Some(acc) => case Some(acc) =>
sender() ! ReceiveAccountData(acc) sender() ! ReceiveAccountData(acc)
log.info(s"Retrieving intermediary account data for $acc") log.trace(s"Retrieving intermediary account data for $acc")
case None => case None =>
log.error(s"Unable to retrieve intermediary account data for $token") log.error(s"Unable to retrieve intermediary account data for $token")
} }
case StoreIPAddress(sessionID, address) => case StoreIPAddress(sessionID, address) =>
IPAddressBySessionID += (sessionID -> address) IPAddressBySessionID += (sessionID -> address)
log.info(s"Storing IP address (${address.Address}) for sessionID : $sessionID") log.trace(s"Storing IP address (${address.Address}) for sessionID : $sessionID")
case RetrieveIPAddress(sessionID) => case RetrieveIPAddress(sessionID) =>
val address: Option[IPAddress] = IPAddressBySessionID.remove(sessionID) val address: Option[IPAddress] = IPAddressBySessionID.remove(sessionID)
if (address.nonEmpty) { if (address.nonEmpty) {
sender() ! ReceiveIPAddress(address.get) sender() ! ReceiveIPAddress(address.get)
log.info(s"Retrieving IP address data for sessionID : ${sessionID}") log.trace(s"Retrieving IP address data for sessionID : $sessionID")
} else { } else {
log.error(s"Unable to retrieve IP address data for sessionID : ${sessionID}") log.error(s"Unable to retrieve IP address data for sessionID : $sessionID")
} }
case msg => case msg =>

View file

@ -410,7 +410,7 @@ class PersistenceMonitor(name: String, squadService: ActorRef) extends Actor {
Deployables.Disown(inZone, avatar, context.parent) Deployables.Disown(inZone, avatar, context.parent)
inZone.Population.tell(Zone.Population.Leave(avatar), context.parent) inZone.Population.tell(Zone.Population.Leave(avatar), context.parent)
inZone.tasks.tell(GUIDTask.UnregisterObjectTask(avatar.locker)(inZone.GUID), context.parent) inZone.tasks.tell(GUIDTask.UnregisterObjectTask(avatar.locker)(inZone.GUID), context.parent)
log.info(s"logout of ${avatar.name}") log.info(s"Logout of ${avatar.name}")
} }
} }

View file

@ -25,7 +25,6 @@ class AvatarService(zone: Zone) extends Actor {
case Service.Join(channel) => case Service.Join(channel) =>
val path = s"/$channel/Avatar" val path = s"/$channel/Avatar"
val who = sender() val who = sender()
log.info(s"$who has joined $path")
AvatarEvents.subscribe(who, path) AvatarEvents.subscribe(who, path)
case Service.Leave(None) => case Service.Leave(None) =>
@ -33,8 +32,6 @@ class AvatarService(zone: Zone) extends Actor {
case Service.Leave(Some(channel)) => case Service.Leave(Some(channel)) =>
val path = s"/$channel/Avatar" val path = s"/$channel/Avatar"
val who = sender()
log.info(s"$who has left $path")
AvatarEvents.unsubscribe(sender(), path) AvatarEvents.unsubscribe(sender(), path)
case Service.LeaveAll() => case Service.LeaveAll() =>

View file

@ -142,7 +142,7 @@ class ChatService(context: ActorContext[ChatService.Command]) extends AbstractBe
) )
case (None, _, _, _) => case (None, _, _, _) =>
log.error("received message from non-subscribed actor") log.warn("received message from non-subscribed actor")
} }

View file

@ -9,38 +9,26 @@ import net.psforever.services.{GenericEventBus, Service}
class GalaxyService extends Actor { class GalaxyService extends Actor {
private[this] val log = org.log4s.getLogger private[this] val log = org.log4s.getLogger
override def preStart() = {
log.info("Starting...")
}
val GalaxyEvents = new GenericEventBus[GalaxyServiceResponse] val GalaxyEvents = new GenericEventBus[GalaxyServiceResponse]
def receive: Receive = { def receive: Receive = {
case Service.Join(faction) if "TRNCVS".containsSlice(faction) => case Service.Join(faction) if "TRNCVS".containsSlice(faction) =>
val path = s"/$faction/Galaxy" val path = s"/$faction/Galaxy"
val who = sender() GalaxyEvents.subscribe(sender(), path)
log.trace(s"$who has joined $path")
GalaxyEvents.subscribe(who, path)
case Service.Join("galaxy") => case Service.Join("galaxy") =>
val path = s"/Galaxy" val path = s"/Galaxy"
val who = sender() GalaxyEvents.subscribe(sender(), path)
log.trace(s"$who has joined $path")
GalaxyEvents.subscribe(who, path)
case Service.Join(channel) => case Service.Join(channel) =>
val path = s"/$channel/Galaxy" val path = s"/$channel/Galaxy"
val who = sender() GalaxyEvents.subscribe(sender(), path)
log.trace(s"$who has joined $path")
GalaxyEvents.subscribe(who, path)
case Service.Leave(None) => case Service.Leave(None) =>
GalaxyEvents.unsubscribe(sender()) GalaxyEvents.unsubscribe(sender())
case Service.Leave(Some(channel)) => case Service.Leave(Some(channel)) =>
val path = s"/$channel/Galaxy" val path = s"/$channel/Galaxy"
val who = sender()
log.trace(s"$who has left $path")
GalaxyEvents.unsubscribe(sender(), path) GalaxyEvents.unsubscribe(sender(), path)
case Service.LeaveAll() => case Service.LeaveAll() =>
@ -53,7 +41,7 @@ class GalaxyService extends Actor {
GalaxyServiceResponse(s"/Galaxy", GalaxyResponse.MapUpdate(msg)) GalaxyServiceResponse(s"/Galaxy", GalaxyResponse.MapUpdate(msg))
) )
case GalaxyAction.TransferPassenger(player_guid, temp_channel, vehicle, vehicle_to_delete, manifest) => case GalaxyAction.TransferPassenger(_, temp_channel, vehicle, vehicle_to_delete, manifest) =>
GalaxyEvents.publish( GalaxyEvents.publish(
GalaxyServiceResponse( GalaxyServiceResponse(
s"/$forChannel/Galaxy", s"/$forChannel/Galaxy",
@ -69,6 +57,6 @@ class GalaxyService extends Actor {
) )
case msg => case msg =>
log.info(s"Unhandled message $msg from ${sender()}") log.warn(s"Unhandled message $msg from ${sender()}")
} }
} }

View file

@ -28,27 +28,19 @@ class LocalService(zone: Zone) extends Actor {
context.actorOf(Props[RouterTelepadActivation](), s"${zone.id}-telepad-activate-agent") context.actorOf(Props[RouterTelepadActivation](), s"${zone.id}-telepad-activate-agent")
private[this] val log = org.log4s.getLogger private[this] val log = org.log4s.getLogger
override def preStart() = {
log.trace(s"Awaiting ${zone.id} local events ...")
}
val LocalEvents = new GenericEventBus[LocalServiceResponse] val LocalEvents = new GenericEventBus[LocalServiceResponse]
def receive: Receive = { def receive: Receive = {
case Service.Join(channel) => case Service.Join(channel) =>
val path = s"/$channel/Local" val path = s"/$channel/Local"
val who = sender() LocalEvents.subscribe(sender(), path)
log.info(s"$who has joined $path")
LocalEvents.subscribe(who, path)
case Service.Leave(None) => case Service.Leave(None) =>
LocalEvents.unsubscribe(sender()) LocalEvents.unsubscribe(sender())
case Service.Leave(Some(channel)) => case Service.Leave(Some(channel)) =>
val path = s"/$channel/Local" val path = s"/$channel/Local"
val who = sender() LocalEvents.unsubscribe(sender(), path)
log.info(s"$who has left $path")
LocalEvents.unsubscribe(who, path)
case Service.LeaveAll() => case Service.LeaveAll() =>
LocalEvents.unsubscribe(sender()) LocalEvents.unsubscribe(sender())
@ -229,13 +221,6 @@ class LocalService(zone: Zone) extends Actor {
//response from HackClearActor //response from HackClearActor
case HackClearActor.SendHackMessageHackCleared(target_guid, _, unk1, unk2) => case HackClearActor.SendHackMessageHackCleared(target_guid, _, unk1, unk2) =>
log.info(s"Clearing hack for $target_guid") log.info(s"Clearing hack for $target_guid")
LocalEvents.publish(
LocalServiceResponse(
s"/${zone.id}/Local",
Service.defaultPlayerGUID,
LocalResponse.SendHackMessageHackCleared(target_guid, unk1, unk2)
)
)
//message from ProximityTerminalControl //message from ProximityTerminalControl
case Terminal.StartProximityEffect(terminal) => case Terminal.StartProximityEffect(terminal) =>
@ -323,7 +308,7 @@ class LocalService(zone: Zone) extends Actor {
//get rid of previous linked remote telepad (if any) //get rid of previous linked remote telepad (if any)
zone.GUID(internalTelepad.Telepad) match { zone.GUID(internalTelepad.Telepad) match {
case Some(old: TelepadDeployable) => case Some(old: TelepadDeployable) =>
log.info( log.trace(
s"ActivateTeleportSystem: old remote telepad@${old.GUID.guid} linked to internal@${internalTelepad.GUID.guid} will be deconstructed" s"ActivateTeleportSystem: old remote telepad@${old.GUID.guid} linked to internal@${internalTelepad.GUID.guid} will be deconstructed"
) )
old.Active = false old.Active = false
@ -333,7 +318,7 @@ class LocalService(zone: Zone) extends Actor {
} }
internalTelepad.Telepad = remoteTelepad.GUID internalTelepad.Telepad = remoteTelepad.GUID
if (internalTelepad.Active) { if (internalTelepad.Active) {
log.info( log.trace(
s"ActivateTeleportSystem: fully deployed router@${router.GUID.guid} in ${zone.id} will link internal@${internalTelepad.GUID.guid} and remote@${remoteTelepad.GUID.guid}" s"ActivateTeleportSystem: fully deployed router@${router.GUID.guid} in ${zone.id} will link internal@${internalTelepad.GUID.guid} and remote@${remoteTelepad.GUID.guid}"
) )
LocalEvents.publish( LocalEvents.publish(

View file

@ -50,7 +50,7 @@ class DeployableRemover(taskResolver: ActorRef) extends RemoverActor(taskResolve
override def SecondJob(entry: RemoverActor.Entry): Unit = { override def SecondJob(entry: RemoverActor.Entry): Unit = {
val obj = entry.obj.asInstanceOf[PlanetSideGameObject with Deployable] val obj = entry.obj.asInstanceOf[PlanetSideGameObject with Deployable]
info(s"Deleting a ${obj.Definition.Name} deployable") trace(s"Deleting a ${obj.Definition.Name} deployable")
context.parent ! DeployableRemover.EliminateDeployable(obj, obj.GUID, obj.Position, entry.zone) context.parent ! DeployableRemover.EliminateDeployable(obj, obj.GUID, obj.Position, entry.zone)
super.SecondJob(entry) super.SecondJob(entry)
} }

View file

@ -83,12 +83,12 @@ class HackClearActor() extends Actor {
case Some(hackEntry) => case Some(hackEntry) =>
val short_timeout: FiniteDuration = math.max(1, hackEntry.duration - (now - hackEntry.time)) nanoseconds val short_timeout: FiniteDuration = math.max(1, hackEntry.duration - (now - hackEntry.time)) nanoseconds
log.info( log.debug(
s"HackClearActor: Still items left in hacked objects list. Checking again in ${short_timeout.toSeconds} seconds" s"HackClearActor: Still items left in hacked objects list. Checking again in ${short_timeout.toSeconds} seconds"
) )
import scala.concurrent.ExecutionContext.Implicits.global import scala.concurrent.ExecutionContext.Implicits.global
clearTrigger = context.system.scheduler.scheduleOnce(short_timeout, self, HackClearActor.TryClearHacks()) clearTrigger = context.system.scheduler.scheduleOnce(short_timeout, self, HackClearActor.TryClearHacks())
case None => log.info("HackClearActor: No objects left in hacked objects list. Not rescheduling check.") case None => log.debug("HackClearActor: No objects left in hacked objects list. Not rescheduling check.")
} }
} }

View file

@ -124,11 +124,7 @@ class SquadService extends Actor {
private[this] val log = org.log4s.getLogger private[this] val log = org.log4s.getLogger
private def debug(msg: String): Unit = { private def debug(msg: String): Unit = {
log.info(msg) log.debug(msg)
}
override def preStart(): Unit = {
log.info("Starting...")
} }
override def postStop(): Unit = { override def postStop(): Unit = {
@ -321,7 +317,7 @@ class SquadService extends Actor {
case str if str.matches("//d+") => case str if str.matches("//d+") =>
Publish(to.toLong, msg, excluded) Publish(to.toLong, msg, excluded)
case _ => case _ =>
log.error(s"Publish(String): subscriber information is an unhandled format - $to") log.warn(s"Publish(String): subscriber information is an unhandled format - $to")
} }
} }
@ -336,7 +332,7 @@ class SquadService extends Actor {
case Some(user) => case Some(user) =>
user ! SquadServiceResponse("", msg) user ! SquadServiceResponse("", msg)
case None => case None =>
log.error(s"Publish(Long): subscriber information can not be found - $to") log.warn(s"Publish(Long): subscriber information can not be found - $to")
} }
} }
@ -383,7 +379,6 @@ class SquadService extends Actor {
case Service.Join(faction) if "TRNCVS".indexOf(faction) > -1 => case Service.Join(faction) if "TRNCVS".indexOf(faction) > -1 =>
val path = s"/$faction/Squad" val path = s"/$faction/Squad"
val who = sender() val who = sender()
debug(s"$who has joined $path")
SquadEvents.subscribe(who, path) SquadEvents.subscribe(who, path)
//subscribe to the player's personal channel - necessary for future and previous squad information //subscribe to the player's personal channel - necessary for future and previous squad information
@ -392,7 +387,6 @@ class SquadService extends Actor {
val longCharId = char_id.toLong val longCharId = char_id.toLong
val path = s"/$char_id/Squad" val path = s"/$char_id/Squad"
val who = sender() val who = sender()
debug(s"$who has joined $path")
context.watch(who) context.watch(who)
UserEvents += longCharId -> who UserEvents += longCharId -> who
refused(longCharId) = Nil refused(longCharId) = Nil
@ -407,7 +401,6 @@ class SquadService extends Actor {
case Service.Leave(Some(faction)) if "TRNCVS".indexOf(faction) > -1 => case Service.Leave(Some(faction)) if "TRNCVS".indexOf(faction) > -1 =>
val path = s"/$faction/Squad" val path = s"/$faction/Squad"
val who = sender() val who = sender()
debug(s"$who has left $path")
SquadEvents.unsubscribe(who, path) SquadEvents.unsubscribe(who, path)
case Service.Leave(Some(char_id)) => case Service.Leave(Some(char_id)) =>

View file

@ -18,27 +18,19 @@ class VehicleService(zone: Zone) extends Actor {
private val turretUpgrade: ActorRef = context.actorOf(Props[TurretUpgrader](), s"${zone.id}-turret-upgrade-agent") private val turretUpgrade: ActorRef = context.actorOf(Props[TurretUpgrader](), s"${zone.id}-turret-upgrade-agent")
private[this] val log = org.log4s.getLogger private[this] val log = org.log4s.getLogger
override def preStart() = {
log.trace(s"Awaiting ${zone.id} vehicle events ...")
}
val VehicleEvents = new GenericEventBus[VehicleServiceResponse] val VehicleEvents = new GenericEventBus[VehicleServiceResponse]
def receive = { def receive = {
case Service.Join(channel) => case Service.Join(channel) =>
val path = s"/$channel/Vehicle" val path = s"/$channel/Vehicle"
val who = sender() VehicleEvents.subscribe(sender(), path)
log.info(s"$who has joined $path")
VehicleEvents.subscribe(who, path)
case Service.Leave(None) => case Service.Leave(None) =>
VehicleEvents.unsubscribe(sender()) VehicleEvents.unsubscribe(sender())
case Service.Leave(Some(channel)) => case Service.Leave(Some(channel)) =>
val path = s"/$channel/Vehicle" val path = s"/$channel/Vehicle"
val who = sender() VehicleEvents.unsubscribe(sender(), path)
log.info(s"$who has left $path")
VehicleEvents.unsubscribe(who, path)
case Service.LeaveAll() => case Service.LeaveAll() =>
VehicleEvents.unsubscribe(sender()) VehicleEvents.unsubscribe(sender())
@ -387,7 +379,7 @@ class VehicleService(zone: Zone) extends Actor {
} }
case msg => case msg =>
log.info(s"Unhandled message $msg from ${sender()}") log.warn(s"Unhandled message $msg from ${sender()}")
} }
import net.psforever.objects.serverobject.tube.SpawnTube import net.psforever.objects.serverobject.tube.SpawnTube

View file

@ -164,7 +164,7 @@ class TurretUpgrader extends SupportActor[TurretUpgrader.Entry] {
) )
} }
}) })
info(s"Converting manned wall turret weapon to $upgrade") debug(s"Converting manned wall turret weapon to $upgrade")
val oldBoxes = AllMountedWeaponMagazines(target) val oldBoxes = AllMountedWeaponMagazines(target)
target.Upgrade = upgrade //perform upgrade target.Upgrade = upgrade //perform upgrade
@ -228,7 +228,7 @@ class TurretUpgrader extends SupportActor[TurretUpgrader.Entry] {
def FinishUpgradingTurret(entry: TurretUpgrader.Entry)(): Unit = { def FinishUpgradingTurret(entry: TurretUpgrader.Entry)(): Unit = {
val target = entry.obj.asInstanceOf[FacilityTurret] val target = entry.obj.asInstanceOf[FacilityTurret]
val zone = entry.zone val zone = entry.zone
info(s"Wall turret finished ${target.Upgrade} upgrade") trace(s"Wall turret finished ${target.Upgrade} upgrade")
target.ConfirmUpgrade(entry.upgrade) target.ConfirmUpgrade(entry.upgrade)
val targetGUID = target.GUID val targetGUID = target.GUID
if (target.Health > 0) { if (target.Health > 0) {